如何将会话超时设置为大于30分钟

Swi*_*tch 10 jsp servlets

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

<session-config>
<session-timeout>60</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)

session.setMaxInactiveInterval(600); 
Run Code Online (Sandbox Code Playgroud)

谢谢.

Nat*_*ate 11

通过部署描述符设置会话超时应该有效 - 它设置Web应用程序的默认会话超时.调用session.setMaxInactiveInterval()可设置调用它的特定会话的超时,并覆盖默认值.还要注意单元差异 - 部署描述符版本使用分钟,session.setMaxInactiveInterval()使用秒.

所以

<session-config>
    <session-timeout>60</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)

将默认会话超时设置为60分钟.

session.setMaxInactiveInterval(600);
Run Code Online (Sandbox Code Playgroud)

将会话超时设置为600秒 - 10分钟 - 为其调用的特定会话.

这应该适用于Tomcat或Glassfish或任何其他Java Web服务器 - 它是规范的一部分.


p u*_*ran 8

如果您希望永不过期会话使用0或负值-1.

<session-config>
    <session-timeout>0</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)

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

<session-config>
  <session-timeout>1440</session-timeout><!-- 24hours -->
</session-config>
Run Code Online (Sandbox Code Playgroud)

会话将在到期后过期24hours.


Tay*_*ese 0

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

  • web.xml/session-config/session-timeout 只是会话的最大空闲时间。如果会话空闲时间较长,则 servlet 容器将丢弃与会话关联的所有数据项。因此,如果您通过 cookie 访问会话,并且 cookie 的生命周期较短,则从用户角度来看,该会话已消失,但从容器角度来看,该会话仍处于活动状态。 (2认同)