会话什么时候到期?

时间:2009-12-18 17:43:31

标签: jsp session-timeout

我在web.xml中将会话超时设置为5分钟。一旦会话过期,sessionDestroyed()将被执行。

但是只要浏览器窗口仍然存在,我希望会话处于活动状态。因此,在每个JSP页面中都有一段JavaScript代码,每100秒访问一次服务器上的图像。关于这部分的基本想法可以在 http://www.intelliproject.net/articles/showArticle/index/js_session_expired

但是,sessionDestroyed()仍将在5分钟内执行。这是我的问题,为什么会触发sessionTimeout事件,即使我每100秒一次访问它?

2 个答案:

答案 0 :(得分:3)

使用firebug,打开网络标签并观察javascript请求。您应该为每个图像GET接收HTTP 200,并且每个网址应该在末尾附加随机数字。您应该只使用时间戳而不是随机数,因为随机数最终可能会重复并将用户注销。

你有一个发生这种情况的示例页面吗?

答案 1 :(得分:2)

  1. 确保你的js调用执行 - 没有js错误(参见错误控制台),并返回200
  2. 不要在图像末尾使用随机参数 - 这不能保证绕过缓存。 Istead设置所访问资源的Expires / Cache-Control标头
  3. 不要使用图像,请使用空文本(jsp)文件。您也可以在那里手动设置标题。