Cooke免登陆,jsp版

 Cookie,复数形式Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行session跟踪而储存在用户本地终端上的数据(通常经过加密),由客户端暂时或永久保存的信息 ,底层采用HashMap键值对<凭证,数据>的形式存放。

登录页面代码:

<%//从客户端获取存放的所有Cookie,查看其中是否有免登陆凭证,若有,则直接跳转至登录页面
    Cookie[] cookies = request.getCookies();

    if (cookies != null) {
        for (Cookie cookie : cookies) {
            if (cookie.getName().equals("loginUser")) {

                //获取免登陆的Cookie对应的标签的用户名
                String userName = cookie.getValue();

                //把免登陆的用户名,存放在request的属性中,它会转发到下个页面,能够继续使用
                request.setAttribute("loginUser", userName);

                request.getRequestDispatcher("loginSuccess.jsp").forward(request, response);
            }
        }
    }
%>



<form action="login.jsp" method="post">
    用户名:<input type="text" name="userName"><br>
    密码:<input type="password" name="password"><br>
    <input type="submit" value="登陆"><br>
</form>

验证页面代码:

 //request对象,是后台把来自前端的请求信息,封装后的对象,里面放置了所有的请求头、请求体信息
    //request:请求
    //response:响应
    String name = request.getParameter("userName");
    String pass = request.getParameter("password");

    //获取访问者的IP地址
    System.out.println("浏览器的地址信息:" + request.getRemoteAddr());

    //模拟从数据库中查出账号、密码是否匹配,再返回客户端结果
    if("csdn".equals(name) && "123456".equals(pass)){
        //登陆成功,跳转页面之前,为了免登陆,把当前用户的登录凭证,存入客户端的Cookie中
        Cookie cookie = new Cookie("loginUser","csdn");
        cookie.setMaxAge(10 * 24 * 3600);//10天免登陆

        //Cookie是由服务器决定,并命令客户端(浏览器),添加或删除一个Cookie
        //response:响应
        response.addCookie(cookie);

        //密码等关键信息,存放在Cookie中不安全

        //登陆成功,跳转成功页面
        request.getRequestDispatcher("loginSuccess.jsp").forward(request,response);
    }else {
        //登录失败,跳转失败页面
        request.getRequestDispatcher("loginFailed.jsp").forward(request,response);
    }

成功页面:

用户名:<%= request.getAttribute("loginUser")%><br>
密码:<%= request.getParameter("password")%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值