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
分享到:
相关推荐
在Web开发中,Session管理是确保用户状态跟踪的重要机制之一。Tomcat作为一款广泛使用的Java应用服务器及Servlet容器,提供了多种方式来设定Session的有效时长。这有助于开发者根据具体业务需求灵活调整Session的...
【标题】:“Tomcat-Redis-Session管理”的实践指南 在Web应用开发中,Session管理是关键的一环,用于在用户浏览器与服务器之间保持状态。传统的Session存储方式是将数据存放在服务器内存中,但随着高并发访问和...
综上所述,"Tomcat Redis Session"是一种在分布式环境中保证用户会话一致性的解决方案,通过集成Redis和Nginx,有效地解决了Web应用集群中的Session管理难题。在实际部署中,还需要考虑系统整体架构、性能优化和运维...
Tomcat_Session 的持久...Tomcat 提供了 StandardManager 和 PersistentManager 两个实现类来管理 Session,其中 PersistentManager 能够把 Session 对象保存到 Session Store 中,提供了更为灵活的 Session 管理功能。
在Tomcat中集成memcached作为Session管理器,可以将Session数据分布在网络中的多个节点上,实现Session复制和高可用性。 为了在Tomcat中使用memcached进行Session管理,你需要以下关键的依赖jar包: 1. **...
在`Tomcat`中,我们可以通过`Tomcat Redis Session Manager`来实现与Redis的集成。这个组件允许我们将Tomcat的session数据存储在Redis中,使得所有服务器都能访问到这些数据。在提供的压缩包文件中,`jedis-2.1.0....
7. `memcached-session-manager-tc8-1.8.3.jar`:这个是针对Tomcat 8版本的session管理器实现,确保与Tomcat 8的兼容性。 8. `minlog-1.2.jar`:这是一个简单的日志库,可能用于在处理session共享时记录和调试信息。...
综上所述,实现Tomcat集群session共享主要涉及Tomcat的session管理机制、Redis的集成以及相应的配置和优化。通过合理配置,可以确保在高并发环境下提供无缝的用户体验,同时提升系统的可扩展性和可靠性。
Tomcat中的Session管理** 在单台Tomcat服务器上,Session信息默认存储在服务器的内存中。然而,当部署多个Tomcat实例时,由于每个实例都有自己的Session存储,导致Session无法跨实例共享,用户在切换服务器时可能会...
标题中的“tomcat8专用session管理包.rar”指的是一个针对Tomcat 8的特定session管理解决方案,这个压缩包包含了在使用Nginx作为反向代理服务器,并与Redis结合实现负载均衡场景下,确保Tomcat应用间session数据共享...
2. **安装Redis-Session-Manager**: 在`Tomcat7`中,我们需要一个能够与Redis通信的Session管理器。可以通过`Spring Session`或者`JedisSessionRepositoryFilter`来实现。这里以`JedisSessionRepositoryFilter`为例...
5. **示例代码**:可能包含如何在Tomcat的web.xml配置文件中添加和配置这个session管理器的示例。 集成这个模块到Tomcat中,开发者需要: 1. 将jar文件放入Tomcat的lib目录,使服务器能加载到这个组件。 2. 在web....
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
Tomcat作为最常用的Java Servlet容器,其Session管理能力直接影响到应用的性能和可扩展性。本教程将详细介绍如何利用Tomcat 8或9以及Redis实现Session共享,支持Redis集群,以提高系统的可伸缩性和数据一致性。 ...
`SimpleTcpCluster` 是一个基于 TCP 的集群实现,而 `DeltaManager` 是用于处理 Session 数据更新的管理器。主要配置包括: - `tcpListenAddress`:指定接收复制数据的 IP 地址,例如 `192.168.1.55`。 - `...
6. **Cookie管理**:可以将session ID存储在cookie中,通过负载均衡器将请求路由到拥有相应session的服务器。这种方法简化了session的处理,但可能面临cookie篡改或跨站请求伪造(CSRF)攻击的风险。 在实际应用中...
综上所述,"tomcat-redis-session-manager包集合"为使用Tomcat8和JDK1.8的开发者提供了便捷的手段,通过集成Redis来增强session管理,提升应用在分布式环境下的性能和可靠性。正确配置和使用这个工具可以显著改善...
在多Tomcat环境下的session共享中,Shiro可以作为会话管理的工具,它支持自定义的session管理策略。 4. **共享Session的解决方案**: 为了实现session共享,我们可以利用Redis这样的内存数据存储系统。Redis具有...
总结来说,这个压缩包提供了一套完整的解决方案,包括了连接Redis的Jedis客户端、对象池管理、Tomcat的Session管理器以及配置文件,使得开发者可以轻松地在Tomcat集群中实现Session共享,提升系统的可扩展性和容错性...
总的来说,结合`Tomcat`和`Memcached`进行Session管理,能够在分布式环境中提供一致的用户体验,同时提高了系统的可扩展性和性能。正确配置和使用这套方案,可以帮助开发者构建更健壮、高效的Web应用。