Spring Web 应用程序中带有 Ajax 轮询的会话超时

Posted

技术标签:

【中文标题】Spring Web 应用程序中带有 Ajax 轮询的会话超时【英文标题】:Session Timeout w/Ajax Polling in Spring Web Application 【发布时间】:2011-07-13 17:16:59 【问题描述】:

我正在开发一个基于 Spring 3.0 的 Web 应用程序,该应用程序需要所有用户登录才能查看数据。登录后,屏幕的某些部分使用 AJAX 轮询机制在后台更新屏幕内容。目前,我们的会话不会超时,因为每次向服务器发出的 ajax 请求都会更新 Web 应用程序的超时时间,并且会话永远不会超时。

我需要修改应用程序,以便当用户登录时,控制器将使用数据响应轮询,但不更新会话超时,以便会话在其预定时间超时。如果用户没有活动会话,则控制器不会返回任何内容。

我该怎么做呢?

【问题讨论】:

你能告诉我你是怎么处理的吗? 【参考方案1】:

如何将 用于传递 ajax 数据的页面。由于这些页面不会绑定到会话,因此会话超时可能不会更新。

【讨论】:

【参考方案2】:

您将不得不在您的 servlet 容器的内部进行处理。

这就是我要做的事情

在 google 上搜索“xhr XmlHttpRequest servlet 容器会话访问”,看看有没有什么有趣的事情出现(我现在懒得做) 无论您使用什么 servlet 实体,将代码拉到本地并查看会话实现。具体来说,您想弄清楚是什么设置了 javax.servlet.http.HttpSession.getLastAccessedTime 返回的值。当你找到它时,向后工作以了解如何自定义它。我很确定您可以通过扩展其中一个内部类并通过在 XML 配置文件中设置自定义类来使用 Tomcat 来做到这一点。

【讨论】:

以上是关于Spring Web 应用程序中带有 Ajax 轮询的会话超时的主要内容,如果未能解决你的问题,请参考以下文章

JS图片轮显代码里链接中带有“&”符号怎么正常显示

ajax 轮询(适合web端二维码请求)

laravel中带有ajax的范围滑块

属性文件中带有 Thymeleaf -UTF-8 的 Spring Boot CRUD 应用程序

我的控制器中带有 ajax 的 Symfony 调用函数[关闭]

WordPress 中带有 jQ​​uery 的 AJAX:AJAX 调用未将属性值传递给 PHP 函数