2014年1月14日星期二

通过cookie保存并读取用户登录信息实例

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
通过cookie保存并读取用户登录信息实例  阅读原文»

用户名:lixiyu 文章数:55 评论数:2
访问量:2480:1137:602:3 注册日期:2011-12-17

通过cookie保存并读取用户登录信息实例

通过cookie的getCookies()方法可获取所有cookie对象的集合;通过getName()方法可以获取指定的名称的cookie;通过getValue()方法获取到cookie对象的值。另外,将一个cookie对象发送到客户端,使用response对象的addCookie()方法。

下面通过cookie保存并读取用户登录信息的例子加深一下理解。

(1)创建index.jsp文件。在改文件中,首先获取cookie对象的集合,如果集合不为空,就通过for循环遍历cookie集合,从中找出设置的cookie(这里设置为lee),并从该cookie中提取出用户名和注册时间,再根据获取的结果显示不同的提示信息。

index.jsp

"text/html; charset=utf-8"
"utf-8"
<%@page import="java.net.URLDecoder" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>通过cookie保存并读取用户登陆信息</title>
Cookie[] cookies=request.getCookies();//从request中获得cookie对象的集合
String user="";//登录用户
String date="";//注册时间
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
if(cookies.getName().equals("lee")){
user=URLDecoder.decode(cookies.getValue().split("#")[0]);//获取用户名
date=cookies.getValue().split("#")[1];//获取注册时间
if("".equals(user)&&"".equals(date)){ //如果没有注册
<form action="deal.jsp"method="post">
请输入姓名:<input name="user"type="text"value="">
<input type="submit"value="确定">
欢迎[<b><%=user %><b>]再次光临<br>
你注册的时间是:<%=date %>

(2)编写deal.jsp文件,用来向cookie中写入注册信息。

deal.jsp

"text/html; charset=utf-8"
"utf-8"
<%@page import="java.net.URLEncoder" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>写入cookie</title>
request.setCharacterEncoding("utf-8");//设置请求的编译为utf-8
String user=URLEncoder.encode(request.getParameter("user"),"utf-8");//获取用户名
Cookie cookie=new Cookie("lee",user+"#"+new java.util.Date().toLocaleString());//创建并实例化cookie对象
cookie.setMaxAge(60*60*24*30);//设置cookie有效期为30天
response.addCookie(cookie);
<script type="text/javascript">window.location.href=\'#\'" /script>

技巧:在向cookie中保存的信息中如果包括中文,需要调用java.net.URLEncoder类的encode()方法保存到cookie中的信息进行编码;在读取内容时,需要应用到java.net.URLDecoder类的decode()方法进行解码。这样就可以成功地向cookie中写入中文。

本文出自 "好记性,不如烂笔头" 博客,请务必保留此出处http://leexy.blog.51cto.com/4136883/1351339

阅读更多内容

没有评论:

发表评论