- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Session的生命周期.doc
Session的生命周期
以前在学习的时候没怎么注意,今天又回过头来仔细研究研究了一下Session的生命周期。
Session存储在服务器端,一般为了防止在服务器的内存中(为了高速存取),Sessinon在用户访问第一次访问服务器时创建,需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session,可调用request.getSession(true)强制生成Session。
Session什么时候失效?
1. 服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟。
2. 调用Session的invalidate方法。
Session对浏览器的要求:
虽然Session保存在服务器,对客户端是透明的,它的正常运行仍然需要客户端浏览器的支持。这是因为Session需要使用Cookie作为识别标志。HTTP协议是无状态的,Session不能依据HTTP连接来判断是否为同一客户,因此服务器向客户端浏览器发送一个名为JSESSIONID的Cookie,它的值为该Session的id(也就是HttpSession.getId()的返回值)。Session依据该Cookie来识别是否为同一用户。
?
该Cookie为服务器自动生成的,它的maxAge属性一般为-1,表示仅当前浏览器内有效,并且各浏览器窗口间不共享,关闭浏览器就会失效。因此同一机器的两个浏览器窗口访问服务器时,会生成两个不同的Session。但是由浏览器窗口内的链接、脚本等打开的新窗口(也就是说不是双击桌面浏览器图标等打开的窗口)除外。这类子窗口会共享父窗口的Cookie,因此会共享一个Session。
?
注意:新开的浏览器窗口会生成新的Session,但子窗口除外。子窗口会共用父窗口的Session。例如,在链接上右击,在弹出的快捷菜单中选择在新窗口中打开时,子窗口便可以访问父窗口的Session。
?
如果客户端浏览器将Cookie功能禁用,或者不支持Cookie怎么办?例如,绝大多数的手机浏览器都不支持Cookie。Java Web提供了另一种解决方案:URL地址重写。
URL地址重写是对客户端不支持Cookie的解决方案。URL地址重写的原理是将该用户Session的id信息重写到URL地址中。服务器能够解析重写后的URL获取Session的id。这样即使客户端不支持Cookie,也可以使用Session来记录用户状态。HttpServletResponse类提供了encodeURL(String url)实现URL地址重写,该方法会自动判断客户端是否支持Cookie。如果客户端支持Cookie,会将URL原封不动地输出来。如果客户端不支持Cookie,则会将用户Session的id重写到URL中。
注意:TOMCAT判断客户端浏览器是否支持Cookie的依据是请求中是否含有Cookie。尽管客户端可能会支持Cookie,但是由于第一次请求时不会携带任何Cookie(因为并无任何Cookie可以携带),URL地址重写后的地址中仍然会带有jsessionid。当第二次访问时服务器已经在浏览器中写入Cookie了,因此URL地址重写后的地址中就不会带有jsessionid了。
?
人生最可贵的事情是sb似的坚持于追求……
Session生命周期讨论
在程序开发的时候, request session appplication内置对象, 是用的比较多的. request和appliction比较简单, 一个代表一次请求的生命周期. 另一个代表应用程序的生命周期. 多说一点application是单态模式. 在任何地方打印application内置对象,得到的是同一个地址. 因此可以存储程序的公共变量,而非个人的公共变量(个人的公共变量 例如登录信息) 应该存储到Session中
????????? 今天我就详细讲解下中间那个兄弟. 因为在网上看到很多文章. 几乎毫无例外的说. 一个浏览器只有一个Session, 浏览器关闭Session就消失了.其实这种方法是不正确的.
????????? 要了解Session首先要知道一个概念:Session的销毁只有两种情况:第一:session调用了 session.invalidate()方法. 第二:前后两次请求超出了session指定的生命周期时间. 其中Session的生命周期时间可以在web.xml配置. 默认30分钟 在web.xml可以做如下配置:
session-config??????session-timeou
您可能关注的文档
- SCSI及RAID卡的选择.doc
- SC按键中断驱动程序的设计.doc
- SC液泵常见问题.doc
- SDEforOracle存储机制.doc
- SDH本地网光缆传输工程设计规范带图片图形的试题.doc
- SDH维护经验_S设备开通及复用段保护环配置.doc
- SDH设备管理软件总体介绍.doc
- SDM-IO超声波测距传感器.doc
- SDRAM基本操作原理.doc
- SDR基站故障排查案例打印.doc
- 2025年安徽宣城广德市事业单位招聘40人笔试模拟试题及参考答案详解1套.docx
- 2025租赁合同(标准版).docx
- 2025至2030光稳定剂行业市场发展现状及发展前景与投资机会报告.docx
- 2025空调买卖合同(标准版).docx
- 2025至2030光稳定剂行业市场深度研究及发展前景投资可行性分析报告.docx
- 2025年安徽宣城广德市事业单位招聘40人笔试模拟试题及参考答案详解一套.docx
- 2025年安徽宣城广德市事业单位招聘40人笔试模拟试题及答案详解一套.docx
- 2025年安徽宣城广德市事业单位招聘40人笔试模拟试题及答案详解1套.docx
- 2025年安徽宣城广德市事业单位招聘40人笔试模拟试题及完整答案详解1套.docx
- 神经外科运用PDCA循环提高危重患者晨间床旁交接班完整率品管圈.pptx
最近下载
- 耕地质量等级+(GBT+33469-2016).docx VIP
- 人教版高中物理必修一课件.pptx VIP
- 新生儿高胆红素血症诊治指南(2025)解读 (1)PPT课件.pptx VIP
- 《新生儿高胆红素血症诊治指南(2025)》解读(1)PPT课件.pptx VIP
- SGT756国电南自保护培训全解.ppt VIP
- 建设工程工程量清单计价办法(市政工程定额章节说明).pdf VIP
- 盘扣模板支撑体系技术交底(二级).docx VIP
- 精创温控器EK-3010说明书用户手册.pdf
- 外墙涂料施工安全技术交底.doc VIP
- 在线网课学习课堂《舰艇操纵与避碰》单元测试考核答案.docx VIP
文档评论(0)