• JSP教程:1天玩转JSP网站开发技术
  • JSP是什么?
  • JSP的特点与工作流程
  • JSP与ASP、PHP的比较
  • JSP页面的组成及其元素
  • JSP开发环境搭建(Tomcat的安装和配置)
  • 第一个JSP程序
  • JSP注释(多种注释详解)
  • JSP声明:变量、方法和类的声明
  • JSP中嵌入Java代码
  • JSP表达式
  • JSP开发模式(四种模式)
  • JSP常见错误以及解决方案
  • JSP指令详解(三大指令)
  • JSP page指令
  • JSP include指令
  • JSP指令应用实例
  • JSP动作
  • JSP include动作
  • JSP param动作
  • JSP forward动作
  • JSP plugin动作
  • JSP useBean动作
  • JSP setProperty动作
  • JSP getProperty动作
  • JSP application 对象
  • JSP out对象:向客户端输出数据
  • JSP request对象:获取客户端的请求信息
  • JSP response对象:响应客户端的请求并向客户端输出信息
  • JSP session对象
  • JSP pageContext对象
  • JSP page对象
  • JSP config对象
  • JSP获取并显示字符串长度
  • 什么是JavaBean?
  • JavaBean工具
  • JavaBean规范
  • JavaBean的属性(Simple、Indexed、Bound、Constrained)
  • JavaBean的Scope属性
  • JavaBean事件
  • JavaBean实现用户登录界面
  • Servlet是什么?
  • Servlet的生命周期
  • Servlet的类和方法
  • Servlet客户端跳转
  • EL是什么?(详解)
  • JSP EL表达式的基本语法及运算符的优先级(一览表)
  • JSP EL 点(.)运算符和下标([])运算符
  • JSP EL算数运算符
  • JSP EL关系运算符
  • JSP EL逻辑运算符
  • JSP EL条件运算符
  • JSP EL empty空运算符
  • EL表达式中的常量与变量
  • EL表达式的保留字
  • EL表达式的内置对象及其作用域
  • 使用EL表达式访问JavaBean
  • 使用EL表达式访问集合
  • EL表达式内置对象param和paramValues
  • EL表达式内置对象cookie
  • EL表达式内置对象initParam
  • JDBC 的定义及产品组件
  • 建立JDBC连接
  • 利用JDBC发送SQL语句
  • JDBC API ResultSet接口(记录集接口)
  • JDBC RowSet接口
  • JDBC BaseRowSet类和CachedRowSet类
  • 填充CachedRowSet对象记录集(三种方法)
  • File类(在JSP中的使用)详解
  • 使用字节流读/写文件
  • RandomAccessFile类
  • JSP文件上传
  • XML是什么?
  • XML的基本语法
  • JDK 中的 XML API
  • DOM解析XML
  • SAX解析XML
  • DOM4j解析XML
  • 实训内容和要求

    应用 JavaBean 方式实现用户的登录验证,当用户在表单中填写正确的用户名和密码后,提示成功登录。若输入的密码错误,则提示“密码错误,请输入正确密码!”。

    实训步骤

    (1) 用 JavaBean 用户登录验证。类 User 包含基础的用户名、密码属性,用 Map 来保存错误信息,代码如下:

    1. package com.eshore.pojo;
    2. import java.io.Serializable;
    3. import java.util.HashMap;
    4. import java.util.Map;
    5. public class User implements Serializable
    6. {
    7. private String username=""; //用户名
    8. private String passwd=""; //密码
    9. Map<String,String> userMap=null; //存放用户
    10. Map<String,String> errorsMap=null; //存放错误信息
    11. public User()
    12. {
    13. //无参的构造方法
    14. super();
    15. this.username="";
    16. this.passwd="";
    17. userMap=new HashMap<String,String>();
    18. errorsMap=new HashMap<String,String>();
    19. //添加用户,模拟从数据库中查询出的数据库
    20. userMap.put("baiqian","123zs");
    21. userMap.put("baifengjiu","1234zs");
    22. userMap.put("yehua","1234ww");
    23. userMap.put("zheyan","1234zq");
    24. userMap.put("baichen","1234zl");
    25. //TODO Auto-generated constructor stub
    26. }
    27. //数据验证
    28. public boolean isValidate()
    29. {
    30. boolean flag=true;
    31. //用户名验证
    32. if(!this.userMap.containsKey(this.username))
    33. {
    34. flag=false;
    35. errorsMap.put("username","该用户不存在!");
    36. this.username="";
    37. }
    38. //根据用户名进行密码验证
    39. String password = this.userMap.get(this.username);
    40. if(password==null||!password.equals(this.passwd))
    41. {
    42. flag=false;
    43. this.passwd="";
    44. errorsMap.put("passwd","密码错误,请输入正确密码!");
    45. this.username="";
    46. }
    47. return flag;
    48. }
    49. //获取错误信息
    50. public String getErrors(String key)
    51. {
    52. String errorV=this.errorsMap.get(key);
    53. return errorV==null?"":errorV;
    54. }
    55. //以下是属性的get和set方法,但必须是public
    56. public String getUsername()
    57. {
    58. return username;
    59. }
    60. public void setUsername(String username)
    61. {
    62. this.username=username;
    63. }
    64. public String getPasswd()
    65. {
    66. return passwd;
    67. }
    68. public void setPasswd(String passwd)
    69. {
    70. this.passwd=passwd;
    71. }
    72. }

    (2) 登录页面 login.jsp,引用 User 类并用表单提交的方式;设定 User 属性值,代码如下:

    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    2. <jsp:useBean id="user" class="com.eshore.pojo.User" scope="session"/>
    3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    4. <html>
    5. <head>
    6. <title>用户登录</title>
    7. </head>
    8. <body>
    9. <p>用户登录</p>
    10. <!--用form表单提交,用户名跟密码-->
    11. <form action="check.jsp" method="post">
    12. <table border="1" width="250px;">
    13. <tr>
    14. <td width="75px;">用户名:</td>
    15. <td><input name="username" value="<jsp:getProperty name="user" property="username"/>"/>
    16. <!--用户错误信息-->
    17. <span style="color:red"><%=user.getErrors("username") %></span><br/></td>
    18. </tr>
    19. <tr>
    20. <td width="75px;">密&nbsp;&nbsp;码:</td>
    21. <td><input type="password" name="passwd" value="<jsp:getProperty name="user" property="passwd"/>"/>
    22. <!--密码错误信息-->
    23. <span style="color:red"> <%=user.getErrors("passwd") %></span><br/></td>
    24. </tr>
    25. <tr>
    26. <td colspan="2">
    27. <input type="submit" value="提交"/>&nbsp;&nbsp;
    28. <input type="reset" value="重置"/>
    29. </td>
    30. </tr>
    31. </table>
    32. </form>
    33. </body>
    34. </html>

    (3) 检验页面 check.jsp,同样定义一个范围为 session 的 User,调用类的验证方法进行判断,代码如下:

    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    2. <jsp:useBean id="user" class="com.eshore.pojo.User" scope="session"/>
    3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    4. <html>
    5. <head>
    6. <title>验证用户</title>
    7. </head>
    8. <body>
    9. <!--
    10. 设置user属性,判断是否合法
    11. 合法跳转成功,否则跳转到登录页面
    12. -->
    13. <jsp:setProperty property="*" name="user"/>
    14. <%
    15. if(user.isValidate())
    16. {
    17. %>
    18. <jsp:forward page="success.jsp"/>
    19. <%
    20. }else{
    21. %>
    22. <jsp:forward page="login.jsp"/>
    23. <% } %>
    24. </body>
    25. </html>

    (4) success.jsp 文件显示欢迎界面,代码如下:

    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    2. <% request.setCharacterEncoding("UTF-8"); %>
    3. <jsp:useBean id="user" class="com.eshore.pojo.User" scope="session"/>
    4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    5. <html>
    6. <head>
    7. <title>登录成功</title>
    8. </head>
    9. <body>
    10. <center>
    11. <h4>欢迎您:
    12. <SPAN style="color: red">
    13. <jsp:getProperty property="username" name="user"/>
    14. </SPAN>用户!
    15. </h4>
    16. </center>
    17. </body>
    18. </html>

    程序运行结果如图 1、图 2、图 3 所示。

    用户登录界面
    图1 用户登录界面

    输入错误信息提示
    图2 输入错误信息提示

    成功登录的效果
    图3 成功登录的效果