JSP_006_HttpSession之原理

本文详细介绍了HttpSession的工作原理,特别是如何依赖Cookie中的JSESSIONID来查找和管理session对象。包括了request.getSession()方法的实现机制,以及如何在浏览器中保持会话状态。

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

JSP_006_HttpSession之原理


HttpSession原理【依赖Cookie中的JSESSIONID来查找


request.getSession()方法:获取Cookie中的JSESSIONID:

1)如果sessionId不存在,服务器创建session,把session保存起来,把新创建的sessionId保存到Cookie中

2)如果sessionId存在,服务器通过sessionId查找session对象,如果没有查找到,创建session,把session保存起来,把新创建的sessionId保存到Cookie中

3)如果sessionId存在,服务器通过sessionId查找到了session对象,那么就不会再创建session对象了。

4)最后,返回session


第一次:如果创建了新的session,浏览器会得到一个包含了sessionId的Cookie【基于Cookie,但是该Cookie的存活是在浏览器内,不在硬盘】

··················这个Cookie的生命为-1,即只在浏览器内存中存在,如果不关闭浏览器,那么Cookie就一直存在。


第二次:下次请求时,再次执行request.getSession()方法时,通过Cookie中的sessionId找到session对象。

··················所以与上一次请求使用的是同一session对象。


服务器不会马上给你创建session,在第一次获取session时,才会创建!request.getSession();

第一次才创建,之后直接获取

三个方法-------------------------------------------


1)request.getSession(false):如果session缓存中(如果cookie不存在),不存在session,那么返回null,而不会创建session对象。

2)request.getSession(true)

3)request.getSession(),2和3的方法效果相同




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值