繁体   English   中英

如何在 web.xml 中以秒为单位设置会话超时?

[英]How do I set session timeout in seconds in web.xml?

我需要将会话超时设置为 40 秒。 我知道我们通常保持 20 分钟。

但是我当前的应用程序要求是将会话超时保持在 40 秒。 web.xml 仅将整数值设为 1,但并未将其设为 0.6。 有没有办法写这个? 我们在 Apache tomcat 服务器上运行我们的 java web 应用程序。

那么如何在 web.xml 中以秒为单位设置会话超时?

使用部署描述符,您只能以分钟为单位设置超时:

<session-config>
    <session-timeout>1</session-timeout>
</session-config>


但是使用HttpSession API,您可以为servlet 容器设置会话超时(以秒单位)

HttpSession session = request.getSession();
session.setMaxInactiveInterval(40);

建议阅读: 部署描述符元素

在 web.xml 文件中,您可以在几分钟内提供

<session-config>
    <session-timeout>Minutes</session-timeout>
</session-config>

但是您以编程方式在几秒钟内提供值

HttpSession session = request.getSession();
session.setMaxInactiveInterval(20*60);
1) Timeout in the deployment descriptor (web.xml)

– 在“minute”中指定超时值,用“session-config”元素括起来。

标记

<web-app ...>
    <session-config>
        <session-timeout>20</session-timeout>
    </session-config>
</web-app>

以上设置适用于整个Web应用程序,如果客户端在20分钟后没有发出任何请求,会话将被容器杀死。

2) Timeout with setMaxInactiveInterval()

– 您可以为特定会话手动指定以“秒”为单位的超时值。

爪哇

HttpSession session = request.getSession();
session.setMaxInactiveInterval(20*60);

上述设置仅适用于调用“setMaxInactiveInterval()”方法的会话,如果客户端在 20 分钟后没有发出任何请求,会话将被容器杀死。

您可以通过“setMaxInactiveInterval()”覆盖会话超时。

HttpSession session = request.getSession();
session.setMaxInactiveInterval(20000);

这里需要以毫秒为单位的时间,这意味着在接下来的 20 秒内会话将过期。

如何在 web.xml 中以秒为单位设置会话超时? 解决方案:试试这个 const token = jwt.sign({ _id: user._id }, process.env.JWT_SECRET) // 你的令牌在这里 res.cookie('Cookie', token, { expire: new Date(Date.now() )+ 9999)})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM