一聚教程网:一个值得你收藏的教程网站

热门教程

JSP的Cookie在登录中的使用

时间:2023-09-18 09:18:27 编辑:袖梨 来源:一聚教程网

这篇文章主要介绍了JSP的Cookie在登录中的使用的相关资料,希望通过本文能帮助到大家,让大家理解掌握使用Cookie,需要的朋友可以参考下

JSP的Cookie在登录中的使用

一 功能需求

实现记忆用户名和密码功能。

二 代码

1、login.jsp

<%@ page language="java" import="java.util.*,java.net.*" contentType="text/html; charset=utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head><base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" >--> </head><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>

2、dologin.jsp

<%@ page language="java" import="java.util.*,java.net.*" contentType="text/html; charset=utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head><base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><title>My JSP 'dologin.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" >--></head><body><h1>登录成功</h1><hr><br><br><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" rel="external nofollow" target="_blank">查看用户信息</a> </body> </html>

3、users.jsp

<%@ page language="java" import="java.util.*,java.net.*" contentType="text/html; charset=utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head><base href="<%=basePath%>" rel="external nofollow" rel="external nofollow" rel="external nofollow" ><title>My JSP 'users.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" >--></head><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>

三 测试

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

热门栏目