我有一个需求,需要将会话超时设置为40秒。我们通常保持20分钟。
但是我的当前应用程序要求将会话超时设置为40秒。web.xml只接受整数值为1,但不接受0.6。有没有办法解决这个问题?我们的Java Web应用程序运行在Apache Tomcat服务器上。
那么,如何在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)
在“session-config”元素中指定超时值,以“分钟”为单位。
标记
<web-app ...>
<session-config>
<session-timeout>20</session-timeout>
</session-config>
</web-app>
2) Timeout with setMaxInactiveInterval()
- 您可以手动为特定会话指定“秒”超时值。
Java
HttpSession session = request.getSession();
session.setMaxInactiveInterval(20*60);
你可以通过 "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)})