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

时间:2011-03-11 18:49:15

标签: jquery spring-mvc spring-security polling

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

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

我将如何做到这一点?

2 个答案:

答案 0 :(得分:0)

如何使用<%@ page session =“false”%>用于提供ajax数据的页面。由于这些页面不会与会话绑定,因此可能不会更新会话超时。

答案 1 :(得分:-1)

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

这就是我要做的事情

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