Servlet Cookie实现记住密码,自动登录
本案例重点讲解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) && !"123".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>
运行程序,当输入正确的用户名密码进行登录,并勾选“记住密码”后,下次再回到登录界面,就是下面的这个样子:

当用户第一次登录网站的时候,网站向客户端发送一个包含有用户名的Cookie。当用户在之后的某个时候再次访问,浏览器就会向网站服务器回送这个Cookie,于是,我们可以从这个Cookie中读取到用户名,然后调用Servlet登录的方法,从而实现自动为用户登录。
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。