网络中的会话超时.xml

2022-08-31 14:45:54

我试图理解Web中会话配置的真正目的.xml会话超时。

<!-- Session Configuration -->
<session-config>
        <session-timeout>60</session-timeout>
</session-config>

现在让我告诉你我的问题。

我的应用程序正在导入/上传.txt文件,这必然需要1个多小时,因为有数百万条记录需要导入。但是会话在1小时后超时,尽管我的应用程序仍在导入.txt文件正在进行中。此类应用程序不应超时,因为应用程序正在后台执行某些任务。


答案 1

设置永不过期的会话超时是不可取的,因为用户在每次完成时按下注销按钮是可靠的,以防止服务器负载过大(取决于用户数量和硬件)。此外,您可能还会遇到一些您宁愿避免的安全问题。

当服务器仍在处理任务时,会话被禁用的原因是,客户端(用户浏览器)和服务器端之间没有通过http请求进行通信。因此,服务器无法知道用户状态,认为他正在闲置,并在.web.xml

要解决这个问题,您有几种可能性:

  • 您可以在任务运行时 ping 后端以触摸会话并防止其过期
  • 增加服务器内部,但我不建议这样做<session-timeout>
  • 在专用线程中运行任务,该线程在工作时触摸(扩展)会话或在线程完成时通知用户

有一个类似的问题,也许你可以在你的项目中调整这个解决方案的部分内容。看看这个

希望这有帮助,玩得开心!


答案 2
<session-config>
    <session-timeout>-1</session-timeout>
</session-config>

您可以使用“-1”,其中会话永不过期。由于您不知道线程完成需要多长时间。


推荐