tomcat设置session过期,不能正常失效。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat设置session过期,不能正常失效。相关的知识,希望对你有一定的参考价值。

tomcat设置session过期时间, 我把session 设置为 5分钟过期,,但是页面半个多小时没动了,再点页面,还是不过期。。。此时页面也没有任务,会定期自动刷新之类的,页面就是一个绝对静止的页面。三种设置session的方法,我都用了。session.setMaxInactiveInterval();我设置了, web.xml 里面也设置了过期时间 ,server.xml里面的context也设置了过期属性。并且保证设置的都正确。就是不行。。有知道可能是什么原因引起的么tomcat下work目录中的缓存我也清理了。浏览器的cookie之类的记录也清理了。

参考技术A 设置 生效时间 很长 就可以 参考技术B 你先一个方法一个方法的实验,如果都设置了,应该有优先级的问题。设置完了之后保证重启程序和服务。

Tomcat/weblogic session失效时间的几种设置方法

一、在容器中设置
tomcat中配置server.xml中定义context时采用如下定义:

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

weblogci中设置weblogic特有部署描述符weblogic.xml的<session-descriptor>元素的timeoutsecs 属性。这个值以秒为单位
<session-descriptor>
  <session-param>
    <param-name>timeoutsecs</param-name>
    <param-value>2600</param-value>
  </session-param>
</session-descriptor>
默认值是2600秒

二、web应用设置,优先级比容器中高

设置web应用程序描述符web.xml里的<session-timeout>元素。这个值以分钟为单位,并覆盖 weblogic.xml中的timeoutsecs属性
<session-config>
  <session-timeout>24</session-timeout>
</session-config>
此例表示session将在24分钟后过期 ,默认设置是30分钟当<session- timeout>设置为-2,表示将使用在weblogic.xml中设置的timeoutsecs这个属性值。当<session- timeout>设置为-1,表示session将永不过期,而忽略在weblogic.xml中设置的timeoutsecs属性值。该属性值可以通过console控制台来设置

三、应用代码中设置,优先级最高

jsp中控制
session.setmaxinactiveinterval(7200);
session是默认对象,可以直接引 用,单位秒s
4,servlet中控制
httpsession session = request.getsession();
session.setmaxinactiveinterval(7200);
单位秒 s

以上是关于tomcat设置session过期,不能正常失效。的主要内容,如果未能解决你的问题,请参考以下文章

TP3.2.*解决session过期不失效 和 设置不成功问题

细说Tomcat之session持久化探秘

PHP会话控制之失效时间与过期回收机制

jsp 中设置session中 某一值的过期时间

使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作

设置session失效时间