会议何时会过期?

问题描述:

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

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

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

+0

你的web.xml是什么样的?我在网站上使用了类似的机制,它的工作方式与您所描述的一样。 – 2009-12-18 19:25:47

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

您是否有示例页面发生了这种情况?

+0

谢谢你的回复。我已经为你制作了这个测试页面: http://secure10.olemiss.edu/hdstore/test.jsp 但是我不认为它有帮助。 – lonelyloner 2009-12-18 17:56:10

+0

检查web.xml的内容:http://secure10.olemiss.edu/hdstore/test.jsp – lonelyloner 2009-12-18 20:21:36

  1. 确保您的JS调用执行 - 没有JS错误(见错误控制台),而200则返回
  2. 在图像的结尾不要使用随机参数 - 这是不能保证旁路缓存。 Istead设置访问资源的Expires/Cache-Control标题
  3. 请勿使用图像,请使用空文本(jsp)文件。您也可以在那里手动设置标题。
+0

谢谢。你能告诉我如何检查'200返回'吗? – lonelyloner 2009-12-18 21:02:20

+0

正如斯蒂芬肯德尔建议 - 使用萤火虫 – Bozho 2009-12-18 21:18:25

+0

我测试了它并返回了304。使用一个Filter或一个具有正确响应头的虚拟JSP页面来禁用缓存请求。 – BalusC 2009-12-18 22:03:20