Servlets javaee中的会话超时

Servlets javaee中的会话超时,servlets,jakarta-ee,weblogic,session-timeout,Servlets,Jakarta Ee,Weblogic,Session Timeout,在JavaEE中可以通过哪些方式定义会话超时时间?我的目光超越了显而易见的方式,例如在web.xml或HttpSession.setMaxInactiveInterval()中设置会话超时 我目前正在查看一个JavaEE应用程序,但找不到任何与会话超时定义相关的内容。web应用程序位于Weblogic中。我假设由于没有会话超时定义,会话将永远不会过期 与弹簧无关: 通过response.setHeader(“Set Cookie”,cookiestring)控制您自己。是expires属性控制

在JavaEE中可以通过哪些方式定义会话超时时间?我的目光超越了显而易见的方式,例如在web.xml或HttpSession.setMaxInactiveInterval()中设置会话超时

我目前正在查看一个JavaEE应用程序,但找不到任何与会话超时定义相关的内容。web应用程序位于Weblogic中。我假设由于没有会话超时定义,会话将永远不会过期

与弹簧无关:

  • 通过
    response.setHeader(“Set Cookie”,cookiestring)控制您自己。是
    expires
    属性控制会话超时。这将覆盖任何servletcontainer或
    web.xml
    默认值,但无论如何都可以被Java代码中的重写

  • 在servletcontainer级别配置默认值。例如,在Tomcat中,通过元素的
    maxInactiveInterval
    属性。这可以被
    web.xml
    和Java代码中的
    覆盖


更新根据评论和问题更新:


如果未指定,则将使用servletcontainer管理的默认超时。这通常是30分钟(对于Tomcat和克隆来说也是如此)。这样,会话将在客户端在会话中发送最后一个请求30分钟后过期。此外,当客户端关闭并重新打开浏览器实例或清除Cookie时,将创建一个新会话(旧会话将在默认的30分钟超时后过期)。

当您在Weblogic中查找会话如何超时时,我可以添加

weblogic.xml中的
TimeoutSecs
,或在注销时检查代码中会话被
session.invalidate()终止的任何点

顺便说一下,它不是无限的


在Weblogic上,web.xml中的默认值(如果未指定值)是使用Weblogic.xml中的
TimeoutSecs
值,即60分钟

服务器超时与客户端超时不同。或者我没有得到问题:-)@Bozho:如果会话在服务器上超时,那么客户端将无法访问同一会话,反之亦然。我正在检查代码。我也检查了cookies,但是它们没有“expires”属性。使用的应用服务器是Weblogic。所以这个问题毕竟是一个你正在努力解决的具体问题的表象?为什么不直接发布一个关于这个问题的问题呢?至于
expires
属性,这在默认情况下被省略(这意味着服务器端会话将按照服务器配置的默认值(通常为30分钟)或当客户端关闭/重新启动浏览器时过期)。您是对的,很抱歉从一开始就不够具体。我将把这个问题修改成应该用什么措辞。(我已经找到了问题的解决方案,但从最初的表述方式来看,这意味着错误的假设,因此几乎不可能有人提供我正在寻找的答案)。在漫长的一天结束时,我看到了这一点,并认为我正在失去理智。:)