java 会话技术

本文概述了Java EE中的会话管理,包括客户端会话(如Cookie的原理与操作)和服务器端会话(HttpSession的使用场景),重点讲解了Cookie的属性、作用及如何在Servlet中操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打开浏览器,访问网站地址后,会话开始,浏览器关闭,会话结束

在java EE中,会话管理分为两类,客户端会话技术和服务端会话技术

客户端会话技术
把要共享的数据保存到了客户端,每次请求时,把会话信息带到服务器,从而实现多次请求的数据共享

服务端会话技术
本质仍是客户端会话管理技术,只不过保存到客户端的是一个特殊的标识,并且把要共享的数据保存到了服务端的内存对象中。每次请求时,把这个标识带到服务器端,然后使用这个标识,找到对应的内存空间,从而实现数据共享

Cookie
是客户端浏览器的缓存文件,里面记录了客户浏览器访问网站的一些内容。同时,也是HTTP协议请求和响应消息头的一部分

它可以保存客户浏览器访问网站的相关内容(需要哦客户端不禁用Cookie)。从而每次访问需要同一个内容时,先从本地缓存获取,使资源共享,提高效率

Cookie属性

属性名称属性作用是否重要
namecookie的名称必要属性
valuecookie的值(不能是中文)必要属性
pathcookie的路径重要
domaincookie的域名重要
maxAgecookie的生存时间。重要
versioncookie的版本号。不重要
commentcookie的说明。不重要

细节

Cookie有大小,个数限制。每个网站最多只能存20个cookie,且大小不能超过4kb。同时,所有网站的cookie总数不超过300个。

当删除Cookie时,设置maxAge值为0。当不设置maxAge时,使用的是浏览器的内存,当关闭浏览器之后,cookie将丢失。设置了此值,就会保存成缓存文件(值必须是大于0的,以秒为单位)。

向服务器端添加Cookie

public void addCookie(Cookie cookie);

从服务器端获取Cookie

public Cookie[] getCookies();

HttpSession
是Servlet规范中四大对象之一的会话域对象。并且他也是用于实现数据共享的

域对象作用范围使用场景
ServletContext整个应用范围当前项目中需要数据共享时,可以使用此域对象。
ServletRequest当前请求范围在请求或者当前请求转发时需要数据共享可以使用此域对象。
HttpSession会话返回在当前会话范围中实现数据共享。它可以在多次请求中实现数据共享。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值