Java学习11.03(Javaweb登录)
用户登录功能及效果
要完成登录功能,需要创建以下几个界面或文件:登录界面、处理文件、登录成功的界面和登录失败的界面。
创建登录界面
<%@ page contentType="text/html;charset=gb2312"%> <script language="JavaScript"> function isValidate(form) { // 得到用户输入的信息 userid = form.userid.value; userpass = form.userpass.value; // 判断用户名长度 if(!minLength(userid,6)) { alert("用户名长度小于 6 位!"); form.userid.focus(); return false; } if(!maxLength(userid,8)) { alert("用户名长度大于 8 位!"); form.userid.focus(); return false; } // 判断口令长度 if(!minLength(userpass,6)) { alert("口令长度小于 6 位!"); form.userpass.focus(); return false; } if(!maxLength(userpass,8)) { alert("口令长度大于 8 位!"); form.userpass.focus(); return false; } // 判断用户名和口令是否相同 if(userid==userpass) { alert("用户名和口令不能相同!"); form.userpass.focus(); return false; } return true; } // 验证是否满足最小长度 function minLength(str,length) { if(str.length>=length) return true; else return false; } // 判断是否满足最大长度 function maxLength(str,length) { if(str.length<=length) return true; else return false; } </script> <html> <head> <title>用户登录</title> </head> <body> <h2>用户登录</h2> <form name="form1" action="login_process.jsp" method="post" onsubmit="return isValidate(form1)"> 用户名:<input type="text" name="userid"> <br> 口令:<input type="password" name="userpass"><br> <input type="reset" value="重置"> <input type="submit" value="提交"><br> </form> </body> </html>
创建处理文件
创建处理文件的过程分四步完成:
第一步,判断用户的信息是否正确,分别输出“登录成功”和“登录失败”字样。
第二步,在此基础上把登录后的用户信息写入 session 中,以便以后使用。
第三步,登录成功之后跳转到登录成功的界面,登录失败后跳转到登录失败的界面,
使用<jsp:forward>标签完成。
第四步,采用<jsp:include>标签完成第三步任务。
判断用户的信息是否正确
对用户的信息进行判断,主要使用标准标签库中的<c:if>标签完成,代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:if test="${param.username==\"zhangsan\" && param.userpass==\"wangwu\"}">
登录成功!
</c:if>
<c:if test="${param.username!=\"zhangsan\" || param.userpass!="\wangwu\"}">
登录失败!
</c:if>
代码中用到两个<c:if>标签,每个标签的 test 条件都是先进行关系运算(判断是否相等),然后再进行逻辑运算。另外,在比较的时候使用了转义字符,即使用“\"”替换“"”。
运行这个代码,如果用户名输入“zhangsan”,口令输入“wangwu”,则显示“登录成功!”;否则,显示“登录失败!”。
保存用户信息
在JSP 中提供了几种保存信息的方式:
可以保存在当前页面,但是只能在当前页面使用;可以保存在请求对象(每次请求都会创建这样一个对象)中,但是只能在这次请求中使用,请求对象是在服务器
接收到请求后创建的,对客户端进行响应之后就没有了;可以保存在会话对象中,每个用户对应一个会话对象,当用户访问第一个网页的时候,服务器为这个用
户创建一个会话对象,在用户的访问过程中一直有效,当用户关闭网页的时候,会话对象就删除了;还可以保存在应用对象中,这个对象是 Web 应用的所有用
户共享的。