Session的管理
当一个sesson开始时,Servlet容器会创建一个HttpSession对象,在某些情况下把这些Httpsession对象从内存中转移到文件系统中或数据库中,需要访问的时候在把它们载入到内存中来。这样做的好处有两点:节约了内存的消耗,当web服务器产生故障时,还可以从文件系统或数据库中恢复Session的数据。
对于Session的管理,小猫提供了两个实现类:org.apache.catalina.session.StandardManager和org.apache.catalina.session.PersistentManager。
StandardManager -是默认的方法,当Tomcat服务器重启或重载的时候,会把Session对象保存到
<%CATALINA_HOME%>/work/Catalina/honstname/applicatonname/SESSIONS.ser(默认值)文件中,每个对象对应一个文件,以Session ID为文件名,例如:
<Context path="/helloapp" docBase="helloapp" debug="0" reloadable="true">
<Manager className="org.apache.catalina.session.StandardManager" debug="0"
maxActiveSessions="-1" checkInterval="60" />
</Context>
参数说明:checkInterval-检查session是否过期的时间间隔,以秒为单位,缺省值是60秒;
maxActiveSessions-可处于活动状态的session数。
PersistentManager -提供了更加灵活的管理方式,具有容错能力,可以及时把Session备份到Session Store中,可以控制内存中Session的数量。
小猫还提供了实现持久化Session Store的接口,org.apache.catalina.Store,目前提供了两个具体实现类:org.apache.catalina.FileStore和org.apache.catalina.JDBCStore。
server.xml中的配置File Store -
<Context path="/helloapp" docBase="helloapp" debug="0" reloadable="true">
<Manager className="org.apache.catalina.session.PersistentManager" debug="0" saveOnRestart="true"
maxActiveSessions="-1" minIdleSwap="-1" maxIdleSwap="-1" maxIdleBackup="-1" >
<Store className="org.apache.catalina.session.FileStore" directory="mydir"/>
</Manager>
</Context>
参数说明:saveOnRestart-服务器关闭时,是否将所有的session保存到文件中;
maxActiveSessions-可处于活动状态的session数;
minIdleSwap/maxIdleSwap-session处于不活动状态最短/长时间(s),sesson对象转移到File Store中;
maxIdleBackup-超过这一时间,将session备份。(-1表示没有限制)
【转载地址】http://blog.csdn.net/iloveqing/article/details/1544958
分享到:
相关推荐
Tomcat_Session的持久化,详细讲解tomcatsession管理的原理和持久化原理
tomcat-redis-session-tomcat tomcat无缝集成redis实现tomcat集群session管理,包含以下jar包:tomcat-redis-session-manager-VERSION.jar jedis-2.5.2.jar commons-pool2-2.2.jar
使用SpringSession管理多台tomcat的session同步到redis上
tomcat8专用session管理包,nginx+redis+tomcat8做负载均衡时要保持会话共享,需要用到的jar包
本资源已通过测试,资源包括所需jar包和配置说明,如果有不明白的可以在本人博客留言。
tomcat-redis-session-tomcat tomcat无缝集成redis实现tomcat集群session管理jar包
memcached 实现session复制与同步需要的一整套jar
主要为大家详细介绍了Tomcat中session的管理机制 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
在上文Nginx+Tomcat关于Session的管理中简单介绍了如何使用redis来集中管理session,本文首先将介绍默认的管理器是如何管理Session的生命周期的,然后在此基础上对Redis集中式管理Session进行分析。 Tomcat Manager...
使用tomcat-redis-session-manager进行统一session管理所需jar包,包括tomcat6-jdk6、tomcat7-jdk7、tomcat8-jdk8
通过memcache实现tomcat7的session共享,目前生产环境用的不多了,但自己某个小需求用到,版本冲突好几次,分享给大家,这3个包复制到tomcat的 lib目录下 还有两个包需要 maven引入自己的项目中 <!-- memcache ...
本资源通过Redisson组件实现Tomcat的非黏性会话管理功能,支持多个Tomcat共享存储Session会话信息,支持Tomcat的6.x、7.x、8.x版本,支持JDK1.8+或JDK1.6+环境。Redisson通过重定义Session相关类方法的方式实现...
apache-tomcat-8.0.45以上版本 取消了LifecycleSupport ,而session管理器又不在维护,所有tomcat-8.0.45以上未能实现session同步
redis充当tomcat7 session store需要用到的jar包 使用说明: 1、将zip解压出来的jar包放到tomcat的lib目录下. 2、修改tomcat/conf下的context.xml文件,示例如下: <!-- Default set of monitored resources --> ...
Tomcat7集群扩展session集中管理,tomcat-redis-session-manager使用,所使用jar包和说明
tomcat集群session共享 tomcat-redis-session-manager1.2.rar commons-pool2-2.4.2.jar jedis-2.4.2.jar tomcat配置session管理 配置文件context.xml
使用tomcat-redis-session-manager进行统一session管理所需jar包,包括tomcat6-jdk6
内置: 1、redis安装包 2、单机安装文档 3、集群安装文档 4、tomcat 单机session共享需要的文件和操作文档 5、tomcat 集群session共享需要的文件和操作文档
session 统一存储管理的共享方案。 博客:http://my.oschina.net/ihanfeng/blog/525209 博客已经很详细得说明方案及其代码,如果程序员没有很强的动手能力,那就要付出点代价来下载完整的环境方案。 该方案里面包含...
jar包导入tomcat lib目录下 配置下context.xml即可使用