JSP的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>

 三 测试

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

以上是 JSP的Cookie在登录中的使用 的全部内容, 来源链接: utcz.com/z/356540.html

回到顶部