【问题标题】:I wanted to create a new session, once current servlet session got expired.一旦当前的 servlet 会话过期,我想创建一个新会话。
【发布时间】:2014-01-30 08:37:56
【问题描述】:

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

【问题讨论】:

    标签: servlets session-timeout servlet-container


    【解决方案1】:

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

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

    【讨论】:

    • 而不是增加超时。我想通过再次调用 dopost/doget 对程序进行自动刷新。如果我需要添加 dopost/doget,我需要在哪里添加?在哪个部分它必须再次调用(创建新会话)
    • 我认为这是不可能的。您的客户端(浏览器)应该处理这种情况,而不是服务器。
    【解决方案2】:

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

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

    This post 给出了 Javascript 的示例(问题与 C# 相关,但这无关紧要)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-05
      • 2014-04-25
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 2023-04-03
      • 2018-01-06
      • 2012-01-18
      相关资源
      最近更新 更多