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