Java中会话session的过期时间配置(容器session有效期),以及session三种超时设置的优先级说明[Java web]


·

Java中会话session的过期时间配置(容器session有效期),
以及session三种超时设置的优先级说明[Java web] 

 [Java web] 项目开发中,默认的Session存活时间是30分钟
<session-config> <session-timeout>30</session-timeout> </session-config>

 

一、Java web开发中,三种会话Session过期时间(Session)设置位置和方法

以下以Tomcat8.5.27为例(其他版本可以参考替换); 为了方便,我们作以下简写。

 简写: Tomcat的安装目录简写为{Tomcat_home};
             工程目录简写为{MyProject};

A.   在web容器中设置(此处以tomcat为例)

在{Tomcat_home}\conf\web.xml中设置, {Tomcat_home}是binconf等目录所在的路径,例如 E:\Apache-TomCat\TomCat8.5.27\

以下是tomcat 8中的默认配置:

<!-- ==================== 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>90</session-timeout> 
</session-config> 

</session-config>Tomcat默认session超时时间为30分钟;可以根据需要修改,负数或0为不限制session失效时间。

 

 

B.   在工程的web.xml中设置

在{Tomcat_home}\WebApps\{MyProject}\WEB-INF\web.xml中设置, WebApps目录 是docs、examples、、manager、ROOT等目录所在的路径,
    例如 E:\Apache-TomCat\TomCat8.5.27\WebApps\[工程名称]\\WEB-INF\web.xml

<!-- 时间单位为分钟   -->
<session-config>
      <session-timeout>180</session-timeout>
</session-config>

工程和Web容器一样,默认的session超时时间也是30分钟;可以根据需要修改,负数或0为不限制session失效时间。

 


C.  通过java代码设置

  在Java代码中使用java函数

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

       上方设置的有效期是 100分钟 (100* 60s)

特别注意:这里的单位是秒(s) ; 如果设置的值为零或负数,则表示会话将永不超时!

 

二、这三种设置session有效期方法的优先级

此处优先级按上面的三种方法(A、B、C)来展示,

如果A、B、C三种方法同时使用时的优先级如下:
    三种设置session有效期方式的优先级:  A < B  < C 

 

也就是说,如果同一个工程项目中,如果同时采用了上面的三种方式,则生效的是C :会话超时时间为100分钟 (Java代码中的部分优先生效)

 

另外,一般情况下,很少有人会直接在Java代码中设置session的过期时间,所以,只需要工程项目的 \WebApps\{MyProject}\WEB-INF\web.xml中设置即可。
(可以直接在War包中做好控制)

 

···

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM