通过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,如需转载请自行联系原作者

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

  1. 通过cookie保存并读取用户登录信息

    浏览器将cookie以key/value的形式保存到客户机的某个指定目录 通过cookie的getCookies()方法可获取所有cookie对象的集合 通过cookie对象的getName()方法可 ...

  2. 用户修改了信息jwt服务器怎么识别,django使用JWT保存用户登录信息

    什么是JWT? Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站 ...

  3. Day212.OAuth2、微信二维码登入注册功能、用户登录信息前后端供、讲师列表前后端 -谷粒学院

    谷粒学院 OAuth2的使用场景 一.OAuth2解决什么问题 1.OAuth2提出的背景 照片拥有者想要在云冲印服务上打印照片,云冲印服务需要访问云存储服务上的资源 2.图例 资源拥有者:照片拥有者 ...

  4. Asp.Net使用加密cookie代替session验证用户登录状态 源码分享 欢迎拍砖

    小论坛地址: http://rayyu.5d6d.com/thread-9444-1-1.html 正文: 首先 session 和 cache 拥有各自的优势而存在.  他们的优劣就不在这里讨论了. ...

  5. 【安卓】基于SharedPreferences实现用户登录信息的存储

    1. 设计登录页面 比较简单,重要的点就一个,有一个记住密码的按钮. 代码实现 <?xml version="1.0" encoding="utf-8"? ...

  6. 把discuzX 的用户登录信息添加到纯静态页面

    把discuzX 的用户登录信息添加到纯静态页面 转:http://cq6.com/forum.php?mod=viewthread&tid=86560&extra=page%3D1& ...

  7. python使用selenium打开chrome浏览器时带用户登录信息

    导读 我们在使用selenium打开google浏览器的时候,默认打开的是一个新的浏览器窗口,而且里面不带有任何的浏览器缓存信息.当我们想要爬取某个网站信息或者做某些操作的时候就需要自己再去模拟登陆 ...

  8. 计算机禁止用户登录,win7系统禁止显示用户登录信息的设置方法

    win7系统功能强大,有着xp系统不可比拟的其他功能,不过有些功能虽然强大,但为了保障系统安全信息,最好还是禁用掉为好.比如当用户登录系统桌面时,可以查看上次具体登录情况,包括时间和使用账号.虽然此功 ...

  9. oracle通过sid远程登录,oracle怎么捕获用户登录信息,如SID,IP地址等

    可以利用登录触发器,如 CREATE OR REPLACE TRIGGER tr_login_record AFTER logon ON DATABASE DECLARE miUserSid NUMB ...

最新文章

  1. TensorFlow王位不保?ICLR投稿论文PyTorch出镜率快要反超了
  2. OpenGL ---渲染流水线之世界矩阵,相机变换矩阵,透视投影变换矩阵
  3. 通过java api操作hdfs(kerberos认证)
  4. python wmi mac变动_Python WMI参数反转
  5. LeetCode 456. 132模式(逆序遍历+单调栈)
  6. 如何配置Xshell连接Ubuntu
  7. Linux - CentOS基础
  8. HTML入门学习 -- HTML5 视频与音频
  9. apache virtualhost 访问不了_六星教育:你为什么当不了架构师?除技术,你还需具备这些能力...
  10. Tekla structures Xsteel BIM视频教程105G钢结构19.0 、21.0教程
  11. javascript案例10——下拉菜单
  12. 数据库锁,事务特性,脏读,幻读,不可重复度,隔离级别,分布式事务,本地事务的介绍
  13. linux 输入法成繁体字_寻找Ubuntu中繁体字输入法 | 学步园
  14. 2022 CCF中国软件大会(CCF Chinasoft)“软件可信性与供应链安全前沿进展”论坛成功召开...
  15. python中reduce是什么意思_python中的reduce是什么
  16. 想学开服技术,先了解服务端的组成
  17. 联想成全球PC业至尊
  18. 详细介绍CoinList 2022 年夏季种子项目, web3概念最亮眼!
  19. DETR、conditional DETR、Deformable DETR
  20. Jenkins 添加配置Git账号密码凭据

热门文章

  1. 内核全新优化UI界面影视双端源码
  2. 【QR Code Generator】开源免费响应式QRcdr二维码生成网站源码
  3. 让网站变成灰色插件 可以设定特殊时间
  4. URLshorting网址短链接PHP源码 开源源码
  5. 安全狗远程3389端口修改工具
  6. 网钛CMS PHP版蓝色响应式UI美化模板
  7. 浙江工业大学计算机应用基础,浙江工业大学期终考试命题稿-浙江大学人文学院.doc...
  8. 新建android模拟器无法拨号 真机可以拨号,自己想弄个手机拨号器,可是在模拟器上没有反应,能帮帮忙吗?...
  9. 计算机桌面有黑边怎么调整,电脑屏幕旁边有黑色框如何恢复_电脑两边黑边怎么还原-win7之家...
  10. smartassembly 使用指南