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