Java EE 网站的默认会话超时是多少?

Posted

技术标签:

【中文标题】Java EE 网站的默认会话超时是多少?【英文标题】:What is the default session timeout for a Java EE website? 【发布时间】:2010-09-13 14:14:11 【问题描述】:

如果我没有在我的 web.xml 文件中指定以下内容:

<session-config>
    <session-timeout>10</session-timeout>
</session-config>

我的默认会话超时时间是多少? (我正在运行 Tomcat 6.0)

【问题讨论】:

【参考方案1】:

如果您使用的是 Tomcat,则需要 30 分钟。你可以阅读更多关于它的信息here。

【讨论】:

不幸的是,该链接现在重定向到 oracle 论坛的前面。知道它现在应该指向哪里吗? @Steve Bosman:可能是另一个链接(不知道上面的另一个),但请查看tomcat.apache.org/tomcat-6.0-doc/…。在这里您可以看到您在应用中配置的内容。【参考方案2】:

您也可以在代码中为特定会话使用HttpSession setMaxInactiveInterval API 进行设置:

指定时间,以秒为单位, 在客户端请求之前 servlet 容器将使此无效 会议。负时间表示 会话不应超时。

如果您看到不是 30 分钟的超时,但您没有指定其他值(例如,项目中的另一个开发人员使用了此 API),我会提到这一点。

需要注意的另一点是,此超时可能不会在会话有资格到期的那一秒触发。 Java EE 服务器可能有一个轮询线程,每分钟检查一次过期会话。我没有对此的参考,但在 WebSphere 5.1 时代已经看到了这种行为。

【讨论】:

【参考方案3】:

我确定这取决于您的容器。 Tomcat 是 30 分钟。

【讨论】:

【参考方案4】:

会话超时我们可以在 web.xml 文件中为特定上下文指定如下条目 60

默认会话超时为 30 分钟

【讨论】:

只是好奇:你为什么要复活一个老问题并再次重复已经给出的答案? @BalusC - 这么好的问题。似乎是唯一的答案。 @BalusC, @KG:他在 SO 中注册只是为了给出这个答案。

以上是关于Java EE 网站的默认会话超时是多少?的主要内容,如果未能解决你的问题,请参考以下文章

Apache Tomcat 应用程序的默认会话超时

Rails 是不是提供默认会话超时时间?如果是,它在哪里指定?

使用 Java EE 6 干净地处理会话超时

常规会话管理和常见超时

IIS中的会话超时和空闲超时有啥区别?

PHP会话默认超时[重复]