我要求将会话超时设置为40秒。我知道我们通常保持20分钟。 但我当前的应用程序要求是将会话超时保持为40秒。 web.xml仅将整数值设为1,但不是0.6。有没有办法写这个?我们在Apache tomcat服务器上运行我们的Java Web应用程序。
那么如何在web.xml中以秒为单位设置会话超时?
答案 0 :(得分:13)
使用部署描述符,您只能以分钟为单位设置超时:
<session-config>
<session-timeout>1</session-timeout>
</session-config>
但是使用HttpSession api可以为servlet设置会话超时(以秒为单位):
HttpSession session = request.getSession();
session.setMaxInactiveInterval(40*60);
建议阅读:http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp/web_xml.html#1017275
答案 1 :(得分:3)
在web.xml文件中,您可以在几分钟内提供
<session-config>
<session-timeout>Minutes</session-timeout>
</session-config>
但你以编程方式提供数秒的值
HttpSession session = request.getSession();
session.setMaxInactiveInterval(20*60);
答案 2 :(得分:0)
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分钟后未发出任何请求,则会被容器终止。
答案 3 :(得分:0)
你可以通过&#34; setMaxInactiveInterval()&#34;覆盖会话超时。
HttpSession session = request.getSession();
session.setMaxInactiveInterval(20000);
这里将花费时间(以毫秒为单位),意味着在接下来的20秒内会话将过期。
答案 4 :(得分:0)
如何在web.xml中以秒为单位设置会话超时? 解决方案:试试看 const token = jwt.sign({_id:user._id},process.env.JWT_SECRET)//您的令牌在这里 res.cookie('Cookie',令牌,{过期:新的Date(Date.now()+ 9999)})