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>
三 测试
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
- 图解如何在Spring Boot中使用JSP页面
- 在JSP页面内编写java代码方法总结
- 在JSP中使用formatNumber控制要显示的小数位数方法
- 详解Java读取本地文件并显示在JSP文件中
- 在JSP中如何实现MD5加密的方法
- jsp使用ECharts动态在地图上标识点
- 基于FlashPaper实现JSP在线阅读代码示例