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 网站的默认会话超时是多少?的主要内容,如果未能解决你的问题,请参考以下文章