1

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

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

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

4

2 回答 2

3

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

您有发生这种情况的示例页面吗?

于 2009-12-18T17:49:23.300 回答
2
  1. 确保您的 js 调用执行 - 没有 js 错误(请参阅错误控制台),并返回 200
  2. 不要在图像末尾使用随机参数 - 这不能保证绕过缓存。而是设置访问资源的 Expires / Cache-Control 标头
  3. 不要使用图像,使用空文本 (jsp) 文件。您也可以在那里手动设置标题。
于 2009-12-18T20:32:49.023 回答