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

简介:

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

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

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

index.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<%@ page language= "java"  contentType= "text/html; charset=utf-8"
     pageEncoding= "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" >
<html>
<head>
<meta http-equiv= "Content-Type"  content= "text/html; charset=utf-8" >
<title>通过cookie保存并读取用户登陆信息</title>
</head>
<body>
<%
Cookie[] cookies=request.getCookies(); //从request中获得cookie对象的集合
String user= "" ; //登录用户
String date= "" ; //注册时间
if (cookies!= null ){
     for ( int  i= 0 ;i<cookies.length;i++){
         if (cookies[i].getName().equals( "lee" )){
             user=URLDecoder.decode(cookies[i].getValue().split( "#" )[ 0 ]); //获取用户名
             date=cookies[i].getValue().split( "#" )[ 1 ]; //获取注册时间
                                                                           
         }
     }
                                                                   
}
if ( "" .equals(user)&& "" .equals(date)){  //如果没有注册
%>
游客你好,欢迎你初次光临!
<form action= "deal.jsp" method= "post" >
请输入姓名:<input name= "user" type= "text" value= "" >
<input type= "submit" value= "确定" >
</form>
<%
} else //已经注册
     %>
     欢迎[<b><%=user %><b>]再次光临<br>
     你注册的时间是:<%=date %>
<%
}
%>
</body>
</html>


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

deal.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<%@ page language= "java"  contentType= "text/html; charset=utf-8"
     pageEncoding= "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" >
<html>
<head>
<meta http-equiv= "Content-Type"  content= "text/html; charset=utf-8" >
<title>写入cookie</title>
</head>
<body>
<%
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= "index.jsp" </script>
</body>
</html>


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



本文转自lixiyu 51CTO博客,原文链接:http://blog.51cto.com/lixiyu/1351339,如需转载请自行联系原作者

相关文章
|
10月前
|
存储 缓存 JSON
36.从入门到精通:CGI环境变量 GET和POST方法 GET方法 POST方法 CGI中使用Cookie Cookie设置 检索Cookie信息
36.从入门到精通:CGI环境变量 GET和POST方法 GET方法 POST方法 CGI中使用Cookie Cookie设置 检索Cookie信息
yii2.0每一个 cookie 都是一个实例是什么意思?
yii2.0每一个 cookie 都是一个实例是什么意思?
|
NoSQL Redis
SpringSession的源码解析(从Cookie中读取Sessionid,根据sessionid查询信息全流程分析)
上一篇我们介绍了SpringSession中Session的保存过程,今天我们接着来看看Session的读取过程。相对保存过程,读取过程相对比较简单。 本文想从源码的角度,详细介绍一下Session的读取过程。
274 0
SpringSession的源码解析(从Cookie中读取Sessionid,根据sessionid查询信息全流程分析)
|
数据安全/隐私保护
Session 管理以及Cookie 应用最简单实例
大家好,我是阿萨。基于上次HTTP的认证,HTTP 常见认证方式学习完这个内容,还有一个和认证息息相关的内容,那就是session 和cookie的管理。
Session 管理以及Cookie 应用最简单实例
使用cookie来记录用户登录次数,为何次数不更新
使用cookie来记录用户登录次数,为何次数不更新
|
JavaScript 安全 前端开发
Vue如何读取cookie实现路由守卫(检查用户登录状态)
一般实现路由守卫,判断用户的登录状态使用token和cookie验证两种方法,这次项目后端是给我提供的cookie验证,写到这里就记录一下,希望能帮助到你们
584 0
Vue如何读取cookie实现路由守卫(检查用户登录状态)
Springboot使用Cookie,生成cookie,获取cookie信息(注解与非注解方式)
Springboot使用Cookie,生成cookie,获取cookie信息(注解与非注解方式)
879 0
|
人工智能 安全 JavaScript
前后端通讯:非敏感信息Cookie的"强化"之路
我们公司鉴权走的是JWT, 但是有些数据走Cookie更方便通讯, 纵观今天,网上一大把说Cookie不好的文章. 但是我们还是要用,那怎么安全一丢丢呢?
121 0
|
前端开发
细讲前端设置cookie, 储存用户登录信息
我们都知道如果想做一个用户登录并使浏览器保存其登录信息,使得用户下次再访问网页的时候无需再次进行登录操作,我们需要用到 cookies , 今天我们就来讲讲前端如何给客户端设置 cookie cookie 只有在服务环境下,才能设置,所以如果要尝试练习设置cookie的话,可以使用webstorm编辑器, 它内部自带服务环境,如果用别的编辑器的小伙伴的话,先自己搭一个简单的服务环境哦~
984 0
细讲前端设置cookie, 储存用户登录信息
爬虫使用过程中cookie模拟用户登录和防盗链的使用
1.我们在使用爬虫的过程中会遇到需要登陆以后获取信息的情况,在这种情况下就需要使用cookie记录用户哟登录信息,然后通过cookie信息执行后续的操作. 2.在使用爬虫的过程中我们经常会遇到反扒的情况,我们除了需要考虑headers以外,还需要考虑防盗链的使用.