Tomcat的session
2024-08-25 10:38:58
创建session
在具体说明session的创建过程之前,先看一下BS访问模型:
- browser发送Http request;
- tomcat内核Http11Processor会从HTTP request中解析出“jsessionid”(具体的解析过程为先从request的URL中解析,这是为了有的浏览器把cookie功能禁止后,将URL重写考虑的,如果解析不出来,再从cookie中解析相应的jsessionid),解析完后封装成一个request对象(当然还有其他的http header);
- servlet中获取session,其过程是根据刚才解析得到的jsessionid(如果有的话),从session池(session maps)中获取相应的session对象;这个地方有个逻辑,就是如果jsessionid为空的话(或者没有其对应的session对象,或者有session对象,但此对象已经过期超时),可以选择创建一个session,或者不创建;
- 如果创建新session,则将session放入session池中,同时将与其相对应的jsessionid写入cookie通过Http response header的方式发送给browser,然后重复第一步。
(Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密))
以上是session的获取及创建过程。在servlet中获取session,通常是调用request的getSession方法。
服务器端是怎么判断会话过期的呢?原理服务器会启动一个线程,一直查询所有的Session对象,检查不活动的时间是否超过设定值,如果超过就将其删除。
Session会话信息不会一直在服务器端保存,超过一定的时间期限就会被删除,这个时间期限可以在 web.xml中进行设置,不设置的话会有一个默认值,Tomcat的默认值是60.
最新文章
- (三)Netty源码学习笔记之boss线程处理流程
- Js运动框架
- JAVA之Forward 和 Redirect的区别
- 10月14日下午MySQL数据库基础
- java链式编程设计
- [Java] 利用LinkedHashMap来实现LRU Cache
- 在cmd中运行带包名的java程序
- win7+ubuntu双系统安装攻略
- BZOJ1725: [Usaco2006 Nov]Corn Fields牧场的安排
- js中slice(),splice(),split(),substring(),substr()的使用方法和区别
- paip.QQ音乐导出歌单总结
- org.eclipse.birt.report.data.oda.jdbc.JDBCException: Missing properties in Connection.open(Propertie
- java课程设计---彩票销售管理系统
- 1、Http概述
- NDK工具开发Jni,Android studio jni开发
- 2.Servlet 请求、响应及重定向
- 利用js给datalist或select动态添加option选项
- PHP操作redis详细讲解(转)
- Qt shortcuts
- circRNA
热门文章
- django中使用POST方法 使用ajax后出现“CSRF token missing or incorrect”
- java创建web服务
- IntelliJ IDEA 注册码-使用帮助
- 解决在SharePoint 2010/2013部署自己的Event Handler后,抛出”不能载入被引用的第三方的程序集&;quot;的问题
- 读取csv格式的数据
- 【转】VC++的Unicode编程
- WPF MVVM(Caliburn.Micro) 数据验证
- 如何交换a,b的数值——一个简单的问题就证明现在的你依然弱爆了
- ChemDraw绘制DNA结构的技巧
- NLM算法