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"
titleMy 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!=nullcookies.length0)
{
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
tdinput type="text" name="username" value="%=username %"//td
/tr
tr
td密码:/td
tdinput 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"
titleMy 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!=nullisUseCookies.length0)
{
//把用户名和密码保存在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!=nullcookies.length0)
{
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"
titleMy 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!=nullcookies.length0)
{
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在线阅读代码示例