【Servlet】Cookie会话跟踪技术
Cookie
Cookie技术是一种在客户端保持会话跟踪的解决方案,会话数据保存在客户端浏览器。
Cookie在用户第一次访问服务器时,由服务器通过响应头的方式发送给客户端浏览器;当用户再次向服务器发送请求时会附带上这些文本信息。
在使用Cookie时,要保证客户端浏览器接受Cookie。
存储Cookie会话数据
javax.servlet.http.Cookie类,用于存储会话数据,存储过程如下:
- 构造Cookie对象:
Cookie(java.lang.String name, java.lang.String value)
。 - 设置Cookie:
void setPath(java.lang.String uri)
:设置Cookie的有效访问路径。void setMaxAge(int expiry)
: 设置Cookie的有效时间。- 正整数:时间若为正整数,表示Cookie存活的秒数。
- 负整数:表示其为临时Cookie,数据保存浏览器的内存中,浏览器关闭Cookie就丢失了。
- 零:表示通知浏览器删除相应的Cookie。
void setValue(java.lang.String newValue)
:设置Cookie的值。Cookie数据类型只能保存非中文字符串类型的。可以保存多个Cookie,但是浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
- 将Cookie对象响应给客户端浏览器,存储在客户端机器上。发送Cookie:
void response.addCookie(Cookie cookie)
获取Cookie会话数据
存储在客户端的Cookie,通过HttpServletRequest对象的getCookies()方法获取,该方法返回所访问网站的所有Cookie的对象数组,遍历该数组可以获得各个Cookie对象。
Cookie[] cookies = request.getCookies();
if(cookies != null) {for(Cookie c : cookies){out.println("属性名:" + c.getName());out.println("属性值" + c.getValue());}
}
Cookie访问路径
在默认情况下,创建Cookie时没有设置路径,该Cookie只能被当前目录及子目录应用访问。Cookie的setPath()方法可以重新指定其访问路径,例如:将其设置为在某个应用下的某个路径共享,或者在同一服务器内的所有应用共享。
设置Cookie的有效访问路径:void setPath(java.lang.String uri)
。
有效路径指的是Cookie的有效路径保存在哪里,那么浏览器在有效路径下访问服务器时就会带着Cookie信息,否则不带Cookie信息。
Cookie存活时间
Cookie有一定的存活时间,不会在客户端一直保存,默认情况下,Cookie保存在浏览器内存中,在浏览器关闭时失效,这种Cookie也称为会话Cookie,若要使Cookie较长时间的保存在磁盘上,可以通过Cookie对象的setMaxAge()方法设置其存活时间。
Cookie对象可以通过setMaxAge()方法设置其存活时间,时间以秒为单位:void setMaxAge(int expiry)
- 时间若为正整数,表示其存活的秒数。
- 时间若为负数,表示其为临时Cookie。
- 时间若为0,表示通知浏览器删除相应的Cookie,删除Cookie时,path必须一致,否则不会删除。
例如:
name.setMaxAge(7*24*60*60);
name.setMaxAge(0); //删除Cookie
Cookie的局限性
Cookie的缺点主要集中在其安全性和隐私保护上,主要包括以下几种:
- Cookie可能被禁用,当用户非常注重个人隐私保护时,很可能会禁用浏览器的Cookie功能。
- Cookie可能被删除,因为每个Cookie都是硬盘上的一个文件,因此很有可能被用户删除。
- Cookie的大小和个数受限,不同浏览器有所区别,基本上单个Cookie保存的数据不能超过4095个字节,50个/每个域名。
- Cookie安全性不够高,所有的Cookie都是以纯文本的形式记录于文件中,因此如果要保存用户名密码等信息时,最好事先经过加密处理。
【Servlet】Cookie会话跟踪技术相关推荐
- cookie 会话跟踪技术
cookie 会话跟踪技术 1.cookie就是会话跟踪技术 会话 : 从浏览器打开(网站打开) 到浏览器关闭的这样一个过程称为一次会话 会话跟踪技术 : 在打开浏览器操作cookie后,再次打开其他 ...
- java 会话跟踪技术_JavaEE基础(04):会话跟踪技术,Session和Cookie详解
一.会话跟踪 1.场景描述 比如登录某个购物网站,身份识别成功后,在网站下单,支付 等操作,这些操作中当前登录用户信息必须是共享的,这样这些操作结果才能和登录用户做关联. 2.概念简介 可以把会话理解 ...
- JavaEE基础(04):会话跟踪技术,Session和Cookie详解
本文源码:GitHub·点这里 || GitEE·点这里 一.会话跟踪 1.场景描述 比如登录某个购物网站,身份识别成功后,在网站下单,支付 等操作,这些操作中当前登录用户信息必须是共享的,这样这些操 ...
- JavaWeb-WEB核心7 会话技术 理解什么是会话跟踪技术掌握Cookie的使用掌握Session的使用(钝化、活化)完善用户登录注册案例的功能
会话技术 今日目标 理解什么是会话跟踪技术 掌握Cookie的使用 掌握Session的使用 完善用户登录注册案例的功能 1,会话跟踪技术的概述 对于会话跟踪这四个词,我们需要拆开来进行解释,首先要理 ...
- 会话跟踪技术,Session和Cookie详解
知识的广度来自知识的深度,学习如果不成体系那是多可怕的一件事儿,希望我们在未来的学习道路上坚守初心,不要给自己留下遗憾,以自己喜欢的方式生活,做自己喜欢做的事,宠爱自己,做一个独一无二的自己! 对于文 ...
- JavaWeb第四讲 会话跟踪技术HttpSession、Cookie、url、隐藏表单域
会话跟踪技术Session.Cookie.url.隐藏表单域 (一)Session session是保存在服务器端,理论上是没有是没有限制,只要你的内存够大. 浏览器第一次访问服务器时会创建一个ses ...
- java logout session_会话跟踪技术--session的使用
会话跟踪技术--session的使用 会话跟踪: 1.使用隐藏表单字段 2.URL重写 http://host/path/file.jsp?sessionid=landril 3.持久Cookie 4 ...
- java 4种跟踪会话技术_会话跟踪技术
一.会话跟踪技术 在JavaWeb中,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览器会话结束. 在一个会话的多个请求中共享数据,这就是会话跟踪技术 会话路径技术使用Cookie ...
- 解析Servlet/JSP会话跟踪机制
在Web服务器端编程中,会话状态管理是一个经常必须考虑的重要问题.本文分析JSP/Servlet的会话管理机制及其所面临的问题,然后提出了一种改进的会话管理方法. 一.Servlet的会话管理机制 根 ...
最新文章
- iOS通过Plist保存离线调试日志
- Sybase数据库 概述部署命令
- [数学笔记Mathematical Notes]2-一个带对数的积分不等式
- boost::hana::type_foldl1用法的测试程序
- 我是如何自学 Python 的,分享一下经验
- 《高翔视觉slam十四讲》学习笔记 第四讲 李群与李代数
- golang的配置文件操作:viper
- 从AWS到阿里云: 产品体系差异分析 | 凌云时刻
- 图文并茂地带你了解kafka分区Rebalance机制
- g++ warn_unused_result
- localdatetime 后一天_LocalDateTime 获取上个月最后第一天及最后一天
- 计算机再带word打不开怎么办,word打不开怎么办
- java开发微信抢红包挂_微信抢红包算法实现(JAVA)
- 要考试了,通过爬虫获取试题,最后再看2小时
- 壹度同城新零售系统v4.1.23 社交电商 同城商城
- 金仓数据库 KingbaseES 异构数据库移植指南 (4. 应用迁移流程)
- afn访问本地html,Swift利用AFN实现封装网络请求详解
- Unity ECS 简介
- GNU Bison 2.1 中文手册
- SSH框架电力项目八--运行监控的保存