`
jiangshuiy
  • 浏览: 340019 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Tomcat设置session超时的几种方式

 
阅读更多

Tomcat的会话超时可以在多个级别上设置:tomcat实例级别、Web应用级别、servlet级别以及运行时Context代码级别。 较低级别的设定会覆盖较高级别的设定。 

 

Tomcat可以在以下几个地方设置session超时:

 

1 Web容器级别

在conf/web.xml中

<!-- ==================== Default Session Configuration ================= -->
  <!-- You can set the default session timeout (in minutes) for all newly   -->
  <!-- created sessions by modifying the value below.                       -->

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

 

这里是以分钟为单位的,默认是30分;

 

2 webapp级别

在webapp中的 WEB-INF/web.xml

        <!-- 配置Session失效时间 -->
        <session-config>
                <session-timeout>30</session-timeout>
        </session-config>

也是以min为单位;

 

3 应用程序代码中:硬编码

session.setMaxInactiveInterval(30*60);//以秒为单位

 

优先级,越细粒度优先级越高,也就是3>2>1

 

4 还要一种配置,但现在比较少见了,因为需要将Context配置在server.xml里:

这就是修改conf/server.xml

<Context path="/test" docBase="/home/httpd/html/test"
    defaultSessionTimeOut="3600" isWARExpanded="true"
    isWARValidated="false" isInvokerEnabled="true"
    isWorkDirPersistent="false"/>

 单位为秒

 

 

附:

重启时保持会话 
    在关闭Tomcat实例/取消Web应用部署时,缺省会把当前的活动会话保存到硬盘上,并在重启启动/部署 时在把会话从硬盘上加载到内存中。 
    文件保存在各目录下的SESSIONS.SER中。有时可能会话中保存了敏感信息,或者不希望使用这个特 性,可以配置Context.xml文件关闭这个选项。 
    配置 manager.pathname == ""即可,形如: 
                <Manager pathname="" />   

分享到:
评论

相关推荐

    Java设置session超时的几种方式总结

    以下,将详细介绍几种在Java中设置session超时的方法: 1. 在Web容器中设置 在Web应用服务器中设置session超时是最为基本和直接的方法。以Apache Tomcat为例,在Tomcat的安装目录下,通常会有一个conf文件夹,在这...

    tomcat集群session共享

    2. **选择session复制策略**:Tomcat提供了几种session复制策略,包括基于内存的复制和基于JDBC的复制。在这个场景下,我们将采用基于第三方存储的策略,即使用`org.apache.catalina.session.PersistentManagerBase`...

    tomcat7集群实现session共享

    - **session超时**:确保集群中的所有服务器对session超时设置保持一致,避免用户在集群中的不同服务器之间切换时出现意外登出的问题。 配置Tomcat7进行session共享涉及修改`context.xml`文件,设置session复制的...

    tomcat session存到mencache

    配置Tomcat session到Memcache涉及以下几个关键步骤: 1. **安装Memcache**:首先,你需要在服务器上安装并运行Memcache服务。这通常涉及到下载Memcache软件,编译并安装,然后启动服务。 2. **添加依赖库**:在...

    【全套】tomcat集群Session共享

    2. **选择Session复制策略**:Tomcat提供了几种Session复制策略,如黏滞会话(Sticky Sessions)、基于网络的复制(Network-based Replication)等。黏滞会话将用户的请求始终定向到最初创建Session的节点,而基于...

    tomcat redis session共享

    通过这种方式,Tomcat和Redis的集成不仅实现了Session共享,还提供了高可用性和可扩展性。在大型分布式系统中,这种架构设计对于保持用户会话的一致性至关重要。理解并熟练掌握这一技术,对提升Web应用的性能和用户...

    memcached+tomcat的session共享

    "memcached+tomcat的session共享"就是解决这个问题的一种常见方案。 Memcached是一款高性能、分布式的内存对象缓存系统,它能够将数据存储在内存中,从而提高数据访问速度。Tomcat则是一款广泛使用的Java应用服务器...

    tomcat8 session 共享

    - **Session过期和超时**:设置合理的Session超时时间,防止内存占用过多。 - **Session ID安全性**:防止Session Hijacking攻击,定期更换Session ID。 - **Session同步**:在多服务器之间同步Session数据时,要...

    Tomcat集群Session的Redis共享存储

    根据需求调整Session的超时时间、Redis的连接池设置等。 标签中的"nginx"通常用于在Tomcat集群前作为反向代理服务器,负责负载均衡。它可以根据预设的策略(如轮询、权重、IP哈希等)将请求分发到不同的Tomcat实例...

    memcached +tomcat7.52 session同步

    - **session超时**:配置合理的session超时时间,防止内存资源过度消耗。 通过以上步骤,我们可以利用memcached在Tomcat 7.52中实现高效的session同步,提高应用的可扩展性和可用性。在实际生产环境中,这将有助于...

    tomcat7+redis完成session共享

    2. **选择Session共享策略**:Tomcat提供了几种Session共享方式,包括JDBC、Memcached和Redis。这里我们选用Redis,需要添加相关依赖。在每个Tomcat实例的`WEB-INF/lib`目录下,添加Redis的Java客户端库,如`jedis....

    memcached实现多个tomcat 共享一个session

    标题中的“memcached实现多个tomcat共享一个session”是指在分布式系统中,通过使用memcached作为session存储介质,实现多台Tomcat服务器之间的session共享。这样可以确保用户在集群中的任意一台服务器上登录后,其...

    Tomcat如何监控并删除超时Session详解

    在本文中,我们将深入探讨如何在Tomcat服务器中监控并删除超时的Session。首先,了解Session的概念至关重要。Session是Web应用程序中用于跟踪用户状态的一种机制,它在客户端通过Cookie携带一个唯一标识符...

    tomcat6+redis依赖包

    根据实际情况调整Redis的超时设置、连接池大小等参数,以优化性能。 此外,为了保证系统健壮性,还可以考虑以下几个方面: - **高可用性**:设置Redis集群或哨兵模式,提高服务的可用性,避免单点故障。 - **安全...

    Nginx+tomcat负载均衡集群session复制 windos

    在配置Nginx+Tomcat的负载均衡集群时,主要步骤包括以下几个方面: 1. **安装Nginx和Tomcat**:在Windows上,你可以从官方网站下载Nginx和Tomcat的安装包,按照指南进行安装。确保Nginx和所有Tomcat实例在同一网络...

    session销毁方式

    接下来,我们将详细探讨几种常见的Session销毁方式。 #### 一、通过setMaxInactiveInterval()方法设置过期时间 ```java HttpSession session = request.getSession(true); session.setMaxInactiveInterval(900); /...

    tomcat-redis-session共享资源包

    Session是服务器端存储用户状态的一种方式,当用户登录后,服务器会为其创建一个Session对象,保存用户的登录信息等关键数据。在单体应用中,Session通常存储在服务器的内存中,但当应用分布式部署时,每个服务器...

    tomcat-redis-session.rar

    Tomcat是Java Servlet容器,常用于部署Java Web应用程序,而Redis则是一种高性能的键值数据存储系统,常被用作缓存和会话管理。 描述中的信息虽然简洁,但我们可以推测它包含了一套配置或教程,教导如何在Tomcat中...

    tomcat7 使用redis实现session共享 内附jar包

    在Tomcat7中实现Redis session共享,我们主要需要以下几个步骤: 1. 添加依赖:压缩包中的`jedis-2.8.0.jar`是Java操作Redis的客户端库,`commons-pool2-2.0.jar`是连接池库,用于管理Jedis实例,`redissessions-...

    java_session共享配置.jar

    在Java_session共享配置中,Jedis负责在Tomcat服务器之间同步session数据,将用户的session信息存储在Redis中,而不是传统的基于Cookie或服务器内存的方式。 最后,`kuanrf-tomcat-redis-session-manage-1.0.jar`是...

Global site tag (gtag.js) - Google Analytics