【发布时间】:2014-01-30 08:37:56
【问题描述】:
我必须避免以下情况。 我正在运行 servlet 。此会话将在我的超时 (WEB.XML) 期后在浏览器中过期。超时后,我需要在浏览器中重新加载此链接以激活此 servlet。我不想再次重新加载链接,它应该在超时后创建一个新会话。
【问题讨论】:
标签: servlets session-timeout servlet-container
我必须避免以下情况。 我正在运行 servlet 。此会话将在我的超时 (WEB.XML) 期后在浏览器中过期。超时后,我需要在浏览器中重新加载此链接以激活此 servlet。我不想再次重新加载链接,它应该在超时后创建一个新会话。
【问题讨论】:
标签: servlets session-timeout servlet-container
正确的解决方案是延长web.xml 中的超时 (session-timeout)。
您的客户端,浏览器中的 JS 应用程序应该连接到服务器以宣布它仍然存在。
【讨论】:
超时是会话被服务器终止之前的不活动时间。如果您想保持会话处于活动状态 - 即使没有活动 - 那么您可以延长不活动超时。
或者,您可以编写一个 Javascript AJAX keepalive,每隔几分钟向服务器发送一次心跳。您可以编写一个简单的专用 servlet 来接收此 keepalive 并返回一个简单的响应。心跳将被视为活动 - 从而使会话保持活动状态。
This post 给出了 Javascript 的示例(问题与 C# 相关,但这无关紧要)。
【讨论】: