JavaWeb-seession原理
一.Session原理
1.第一次访问服务器,服务器帮你创建一个Session,并响应给浏览器一个SessionID的Cookie
2.其实我们关闭浏览器之后,是sessionID会丢失,而在服务器端我们的session没有消失,只不过我们再次打开浏览器访问服务器时是新的session了,之前的session找不回来了,之前在服务器端的session如果超过它的最大不活动时间,则自动会清除。
3.其实访问服务器,第一次调用了request.getSession(),人家才给你创建session,且.request.getSession()这个方法实质是帮我们创建session的同时还创建了sessionID的cookie
4.调用request.getSession(),会先获取你的SessionID来判断,以下三种情况:
sessionID不存在,创建新session保存起来,把sessionid保存到cookie里;、
sessionID存在,但是对应的session没有找到,则会创建新的session保存起来,把sessionid保存到cookie里;
sessionID存在,找到了对应的session,则不会创建新session;
5.JSP里没有写request.getSession(),但是我们访问JSP时服务器会带给我们sessionID,是因为JSP里已经创建好session了,自然也会有sessionID返回了
6.request.getSession(false)的意思是:
sessionID不存在,它不会给你创建新的session或者sessionID存在,但是没找到对应的session,也不会创建;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~