Java Web HttpSession会话管理

本文详细介绍了Java Web中的HttpSession会话管理,包括getSession()方法的使用、HttpSession对象的工作原理、以及Session管理策略。重点阐述了Session ID如何通过Cookie在客户端与服务器之间传递,确保Web应用能识别不同请求之间的关联。同时提醒开发者注意合理管理HttpSession,避免存储大型对象并适时调用invalidate()方法使Session失效。

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

在使用HttpSession进行会话管理十分方便,让Web应用程序看似可以“记得”浏览器发出的请求,连接数个请求间的关系。但是无论如何,Web应用程序基于HTTP协议的事实并没有改变,实际上如何“取得”数个请求间的关系,这件工作是由Web容器帮你执行。

getSession()

当运行HttpServletRequest的**getSession()**时,Web容器会创建HttpSession对象,每个HttpSession对象都会有一个特殊ID,称为Session ID,其值可以通过HttpSession对象的getId()取得,Session ID默认使用Cookie存放在浏览器。在Tomcat中,Cookie的名称是JSESSIONID,数值则是getId()所取得的SessionID

HttpSession对象

但是由于Web容器本身是执行于JVM中的一个java程序,通过getSession()取得HttpSession,是Web容器中的一个java对象,HttpSession中存放的属性,自然也就存放于服务端的Web容器之中。当浏览器请求应用程序时,会将cookie中存放的Session ID一并发给应用程序,Web容器会根据Session ID来找到对应的HttpSession对象,这样就可以取得个浏览器个别的会话数据。所以使用HttpSession来进行会话管理时,设定为属性的对象时存储在服务器端,而Session ID默认使用的Cookie存放于浏览器端。Web容器存储Session ID的Cookie“默认”为关闭浏览器就失效,所以重新启动浏览器请求应用程序时,通过ge

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值