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

nww*_*son 6 jquery spring-mvc spring-security polling

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

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

我该怎么做呢?

thr*_*ups 0

您将不得不在 servlet 容器的内部进行修改。

这就是我要做的

  • 在 google 中搜索“xhr XmlHttpRequest servlet 容器会话访问”,看看是否出现任何有趣的内容(我现在懒得这样做)
  • 无论您使用什么 Servlet Entine,都可以将代码下载到本地并查看会话实现。具体来说,您想要弄清楚是什么设置了 javax.servlet.http.HttpSession.getLastAccessedTime 返回的值。当您找到它时,请向后查找以找出如何自定义它。我非常确定您可以通过扩展 Tomcat 的内部类之一并通过在 XML 配置文件中设置自定义类来使用它来使用 Tomcat 来实现此目的。