cookie在登录中的应用
使用cookie对象保存登录的用户名和密码,教程从imooc网站转载
<%@ page language="java" import="java.util.*,java.net.*" contentType="text/html; charset=utf-8"%> <html> <body> <h1>用户登录</h1> <hr> <% request.setCharacterEncoding("utf-8"); String username=""; String password = ""; Cookie[] cookies = request.getCookies(); if(cookies!=null&&cookies.length>0) { for(Cookie c:cookies) { if(c.getName().equals("username")) { username = URLDecoder.decode(c.getValue(),"utf-8"); } if(c.getName().equals("password")) { password = URLDecoder.decode(c.getValue(),"utf-8"); } } } %> <form name="loginForm" action="dologin.jsp" method="post"> <table> <tr> <td>用户名:</td> <td><input type="text" name="username" value="<%=username %>"/></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="password" value="<%=password %>" /></td> </tr> <tr> <td colspan="2"><input type="checkbox" name="isUseCookie" checked="checked"/>十天内记住我的登录状态</td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="登录"/><input type="reset" value="取消"/></td> </tr> </table> </form> </body> </html>
这个是登录界面的代码
<%@ page language="java" import="java.util.*,java.net.*" contentType="text/html; charset=utf-8"%> <html> <body> <h1>登录成功</h1> <hr> <br> <% request.setCharacterEncoding("utf-8"); //首先判断用户是否选择了记住登录状态 String[] isUseCookies = request.getParameterValues("isUseCookie"); if(isUseCookies!=null&&isUseCookies.length>0) { //把用户名和密码保存在Cookie对象里面 String username = URLEncoder.encode(request.getParameter("username"),"utf-8"); //使用URLEncoder解决无法在Cookie当中保存中文字符串问题 String password = URLEncoder.encode(request.getParameter("password"),"utf-8"); Cookie usernameCookie = new Cookie("username",username); Cookie passwordCookie = new Cookie("password",password); usernameCookie.setMaxAge(864000); passwordCookie.setMaxAge(864000);//设置最大生存期限为10天 response.addCookie(usernameCookie); response.addCookie(passwordCookie); } else { Cookie[] cookies = request.getCookies(); if(cookies!=null&&cookies.length>0) { for(Cookie c:cookies) { if(c.getName().equals("username")||c.getName().equals("password")) { c.setMaxAge(0); //设置Cookie失效 response.addCookie(c); //重新保存。 } } } } %> <a href="users.jsp" target="_blank">查看用户信息</a> </body> </html>
这个是处理登录信息的页面代码,用于业务逻辑处理
<%@ page language="java" import="java.util.*,java.net.*" contentType="text/html; charset=utf-8"%> <body> <h1>用户信息</h1> <hr> <% request.setCharacterEncoding("utf-8"); String username=""; String password = ""; Cookie[] cookies = request.getCookies(); if(cookies!=null&&cookies.length>0) { for(Cookie c:cookies) { if(c.getName().equals("username")) { username = URLDecoder.decode(c.getValue(),"utf-8"); } if(c.getName().equals("password")) { password = URLDecoder.decode(c.getValue(),"utf-8"); } } } %> <BR> <BR> <BR> 用户名:<%=username %><br> 密码:<%=password %><br> </body> </html>
这个是登录成功页面代码
、
保存账号信息后重新打开login页面会保存用户账号和密码
这里面
URLDecoder.decode(c.getValue(),"utf-8")这条代码可以用于保存中文账号名,
该方法需要导入net包方可使用,
posted on 2017-11-25 22:33 Marvellous 阅读(1223) 评论(0) 编辑 收藏 举报