2009-09-10 223 views
7

任何人都知道如何设置会话超时超过30分钟? 这两种方法不会工作(默认为30分钟)。如何设置超过30分钟的会话超时

<session-config> 
<session-timeout>60</session-timeout> 
</session-config> 

session.setMaxInactiveInterval(600); 

感谢。

+0

您正在使用哪个应用程序服务器? Tomcat,JBoss等? – Kosi2801 2009-09-10 16:23:28

+0

我正在使用Tomcat,也想知道如何为Glassfish做 – Switch 2009-09-10 16:29:19

+4

那么,没有正确答案? – Alfabravo 2012-03-01 20:38:11

回答

0

在web.xml中设置超时是设置超时的正确方法。

+0

是的我知道,但它不会让我设置超过30分钟的会话超时。 – Switch 2009-09-10 16:31:11

+0

你是什么意思“它不会让你”?它会抛出异常吗?防止服务器启动?弹出错误对话框?或者只是看起来不尊重设置的超时? 在部署描述符中设置超时可能需要重新启动Web应用程序和/或服务器才能使新值生效。我不明白什么会影响在会话上调用setMaxInactiveInterval,尽管...也许别的是设置setMaxInactiveInterval或使会话无效? – Nate 2009-09-10 16:51:44

+0

@Rocky - 和Nate一样的问题。 “你不会让我”是什么意思? – 2009-09-10 19:05:05

0

,如果你被允许在全球范围内做到这一点,那么你可以设置会话超时在

TOMCAT_HOME/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>60</session-timeout> 
</session-config> 
+1

我认为,它为任何不提供值的Web应用程序设置默认值 - 既在其部署描述符中为特定Web应用程序设置默认值,也为特定会话调用setMaxInactiveInterval应覆盖此值。 – Nate 2009-09-10 16:46:55

6

通过部署描述符设置会话超时应该工作 - 它为Web应用程序设置默认会话超时。调用session.setMaxInactiveInterval()会为它所调用的特定会话设置超时,并覆盖默认值。请注意单位差异 - 部署描述符版本使用分钟数,而session.setMaxInactiveInterval()使用秒数。

所以

<session-config> 
    <session-timeout>60</session-timeout> 
</session-config> 

设置默认的会话超时60分钟。

而且

session.setMaxInactiveInterval(600); 

设置会话超时为600秒 - 10分钟 - 为特定的会话,它被称为上。

这应该在Tomcat或Glassfish或任何其他Java Web服务器中工作 - 这是规范的一部分。

+1

为什么框架设计者拒绝理解使用单位的好处,这真的很神秘。与单位合作的一个很好的框架是UCUM(http://unitsofmeasure.org)。 – whaefelinger 2013-08-25 10:48:56

1

这将设置你的会话保持,直到一切都在浏览器关闭

session.setMaxinactiveinterval(-1); 

,这应该设置1天

session.setMaxInactiveInterval(60 * 60 * 24);

6

如果你想永不过期会话使用0或负值-1

<session-config> 
    <session-timeout>0</session-timeout> 
</session-config> 

或提1440表示1440 minutes [24hours * 60 minutes]

<session-config> 
    <session-timeout>1440</session-timeout><!-- 24hours --> 
</session-config> 

会话将24hours之后到期。