7、使用Cookie记录用户名和密码。本题包括4个JSP程序,login.jsp、check.jsp、succ.jsp、failure.jsp。(选做)

login.jsp运行效果如图E2-11所示。用户输入用户名和密码,如果选择了保存信息的时间,则下次登录网站时不用再填写表单。按下确认后,信息提交到check.jsp,check.jsp判断用户输入信息的正确性,如用户名为”tom”,密码”123”, 将验证信息保存到Cookie,登录成功,跳转到succ.jsp,如图E2-12所示。此时如果新打开一个浏览器,然后直接打开“succ.jsp”页面,会提示已登录,说明Cookie起到了自动登录的作用,如图E2-13所示,注意图E2-12和图E2-13的地址栏的地址是不同的;若输入的信息没有通过验证则check.jsp跳转到failure.jsp,如图E2-14所示。若用户在login.jsp页面输入用户名和密码,选择了不保存信息,提交信息后,如果信息输入正确,本次可以成功登录。但是如果新打开一个浏览器,然后直接打开“succ.jsp”页面,则提示未登录,如图E2-15所示,说明Cookie未保存登录信息。

JSP第二次作业_7小题_用户名

图E2-11  longin.jsp运行效果

JSP第二次作业_7小题_用户名_02

图E2-12  check.jsp验证登录信息成功后跳转到succ.jsp页面

JSP第二次作业_7小题_html_03

图E2-13  Cookie保存了登录信息后直接打开“succ.jsp”页面

JSP第二次作业_7小题_表单_04

图E2-14 check.jsp验证登录信息失败跳转到failure.jsp页面

JSP第二次作业_7小题_表单_05

图E2-15  Cookie未保存登录信息直接打开“succ.jsp”页面

 

做的:

7、使用Cookie记录用户名和密码。本题包括4个JSP程序,login.jsp、check.jsp、succ.jsp、failure.jsp。(选做)

login.jsp

<%@ page contentType="text/html;charset=utf-8"%> 

<mce:script language="javaScript"><!--

function validate(f){

if(!(/^/w{5,15}$/.test(f.userId.value))){

alert("用户id必须为5-15位!");

f.userId.focus();

return false;

}

if(!(/^/w{5,15}$/.test(f.password.value))){

alert("密码必须为5-15位!");

f.password.focus();

return false;

}

return true;

}

// --></mce:script>

<form action="check.jsp" method="post" onSubmit="return validate(this)">

<table border="0">

<tr>

<td>用户登录</td>

</tr>

<tr>

<td>

用户名:

</td>

<td>

<input type="text" name="userid">

</td>

</tr>

<tr>

<td>

密 码:

</td>

<td>

<input type="password" name="password">

</td>

</tr>

<tr>

<td>

记住密码?

</td>

<td>

<select name="savetime">

<option value="0" selected>不保存</option>

<option value=<%=24*60*60%>>一天</option>

<option value=<%=24*60*60*7%>>一周</option>

</select>

</td>

</tr>

<tr>

<td> <input type="submit" value="确认"></td>

<td> <input type="reset" value="重置"></td>

</tr>

</table>

</form>

success.jsp

<%@ page contentType="text/html;charset=utf-8"%> 

<%

boolean flag = false ; // 表示登陆成功或失败的标记

if(session.getAttribute("userid")==null){

Cookie[] c=request.getCookies();

String userid=null;

String password=null;

if(c!=null){

for(int i=0;i<c.length;i++){

if("userid".equals(c[i].getName())){

userid = c[i].getValue() ; // 接收Cookie信息

}

if("password".equals(c[i].getName())){

password = c[i].getValue() ; // 接收Cookie信息

}

}

if(userid!=null&&password!=null){



if(userid.equals("mjh")&&password.equals("123")){

// 如果有内容,则此处执行,表示查询出来,合法用户

flag = true ;

session.setAttribute("userid",userid);

}



}

}

}

if(session.getAttribute("userid")!=null){

%>

<h1>登录成功,欢迎光临!</h1>

<%

}else{

%>

<h1> 您还未登录!</h1>

<%

}

%>

check.jsp:

<%@ page contentType="text/html;charset=utf-8" %>

<%

boolean flag = false ; // 表示登陆成功或失败的标记

String userid = request.getParameter("userid") ; // 接收表单参数

String password = request.getParameter("password") ; // 接收表单参数

String savetime=request.getParameter("savetime");

System.out.println(savetime);

if(userid.equals("hwp")&&password.equals("123456")){

// 如果有内容,则此处执行,表示查询出来,合法用户

flag = true ;

session.setAttribute("userid",userid);

//将验证信息保存到Cookie

Cookie cid=new Cookie("userid",userid);

Cookie cpass=new Cookie("password",password);

cid.setMaxAge(Integer.parseInt(savetime));

cpass.setMaxAge(Integer.parseInt(savetime));

response.addCookie(cid);

response.addCookie(cpass);

}

%>

<%

if(flag){ // 登陆成功,应该跳转到success.jsp

%>

<jsp:forward page="success.jsp"/>

<%

}else{ // 登陆失败,跳转到failure.jsp

%>

<jsp:forward page="failure.jsp"/>

<%

}

%>

failure.jsp

<%@ page contentType="text/html;charset=utf-8"%> 

<h1>登录失败,请重新<a href="login.html" mce_href="login.jsp">登录</a></h1>

测试:

登陆账号:hwp,密码:123456

让保留信息一周

JSP第二次作业_7小题_用户名_06

JSP第二次作业_7小题_html_07