一旦当前的servlet会话到期,我想创建一个新会话。

时间:2014-01-11 08:15:53

标签: servlets session-timeout servlet-container

我必须避免以下情况。  我正在运行servlet。在我的超时(WEB.XML)期间,此会话将在浏览器中过期。在此超时后,我需要在浏览器中重新加载此链接以激活此servlet。我不想再次重新加载链接,应该在超时后创建一个新会话。

2 个答案:

答案 0 :(得分:0)

正确的解决方案是在session-timeout中延长超时web.xml)。

您的客户端,浏览器中的JS应用程序应该连接到服务器以宣布它仍然存在。

答案 1 :(得分:0)

超时是服务器终止会话之前的不活动时间。如果要保持会话处于活动状态 - 即使没有活动 - 那么您可以延长不活动超时。

或者,您可以编写一个Javascript AJAX keepalive,每隔几分钟就会向服务器发送一次心跳。您可以编写一个简单的专用servlet来接收此keepalive并发回简单的响应。心跳将被视为活动 - 从而使会话保持活跃。

This post给出了一个Javascript示例(问题是C#相关,但这不重要)。