Servlet Cookie如何实现记住密码,自动登录的效果呢?
下文笔者讲述Servlet使用Cookie技术,实现密码记录及自动登录的效果分享,如下所示:
实现思路: 1.将登录所使用的账号及密码存入到客户端的Cookie中 2.Servlet加载时,自动加载Cookie并使用其中的账号和密码,然后根据相应的逻辑实现自动登录操作例:
//login.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>用户登录</title> <% String username = ""; String password = ""; //获取当前站点的所有Cookie Cookie[] cookies = request.getCookies(); for (int i = 0; i < cookies.length; i++) {//对cookies中的数据进行遍历,找到用户名、密码的数据 if ("username".equals(cookies[i].getName())) { username = cookies[i].getValue(); } else if ("password".equals(cookies[i].getName())) { password = cookies[i].getValue(); } } %> </head> <body> <form action="login_handler.jsp" method="post"> username:<input type="text" name="name" value="<%=username%>" /><br/> password:<input type="password" name="pwd" value="<%=password%>" /><br/> <input type="checkbox" value="y" name="isLogin">自动登录<br/> <input type="submit" value="登录" /> </form> </body> </html> //login_handler.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String name = request.getParameter("name"); String pwd = request.getParameter("pwd"); String flag = request.getParameter("isLogin"); if (!"admin".equals(name) && !"pwd123456".equals(pwd)) { response.sendRedirect("error.jsp"); } else { if ("y".equals(flag)) { //创建两个Cookie对象 Cookie nameCookie = new Cookie("username", name); //设置Cookie的有效期为3天 nameCookie.setMaxAge(60 * 60 * 24 * 3); Cookie pwdCookie = new Cookie("password", pwd); pwdCookie.setMaxAge(60 * 60 * 24 * 3); response.addCookie(nameCookie); response.addCookie(pwdCookie); } response.sendRedirect("success.jsp"); } %> //success.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Succes成功</title> </head> <body>success. </body> </html> //error.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>error错误</title> </head> <body>error. </body> </html>
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。