JSP第二次作业_7小题

版权声明:转载请声明原文链接地址,谢谢! https://blog.csdn.net/weixin_42859280/article/details/89842469

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未保存登录信息。

图E2-11  longin.jsp运行效果

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

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

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

图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

让保留信息一周

猜你喜欢

转载自blog.csdn.net/weixin_42859280/article/details/89842469