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>
三 测试
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
- 原生js+cookie实现购物车功能的方法分析
- JS写XSS cookie stealer来窃取密码的步骤详解
- jQuery结合jQuery.cookie.js插件实现换肤功能示例
- Angularjs cookie 操作实例详解
- 基于js中document.cookie全面解析
- 原生JS 购物车及购物页面的cookie使用方法
- PHP与JavaScript针对Cookie的读写、交互操作方法详解
- javascript cookie的基本操作(添加和删除)
- JS 设置Cookie 有效期 检测cookie
- 实例学习JavaScript读取和写入cookie