【问题标题】:HttpSession expires before timeoutHttpSession 在超时前过期
【发布时间】:2013-08-22 11:06:48
【问题描述】:

在我的 Web 应用程序中,我将会话超时设置为 3 分钟。 我通过 ajax 调用每 30 秒 ping 一次我的应用服务器。 所以理想情况下,会话应该永远不会过期,直到它被注销操作失效。

但它没有特定的模式过期。

非常感谢任何帮助找出这种行为的原因。

【问题讨论】:

  • ping 代码可能无法正确 ping。代码在哪里?
  • 你是如何 ping 通的?当您的服务器收到 ping 请求(即 http ajax 请求)时,尝试记录会话 ID,并查看会话 ID 是否与每个请求相同。
  • 它正在 ping,因此正在通话。我已经在 Firebug/IE 开发者工具(网络)上检查过了。 Ping 是通过在 setTimeout 中调用自身的 JavaScript 方法完成的。 @Muhammad Gelbana 所有呼叫的会话 ID 也是相同的
  • 为什么?为什么不设置一个适当的超时时间,以小时为单位,并完全摆脱 ping 呢?这里的目的是什么?
  • @EJP 作为一个旧的遗留应用程序,我无法承受这种改变

标签: java jakarta-ee httpsession


【解决方案1】:

如果在 ping 请求期间未访问会话,则会话的超时可能不会更新。

【讨论】:

  • 收到请求怎么会不访问会话?!
  • 我认为只有调用 request.getSession() 才能“访问”会话。
猜你喜欢
  • 2010-11-20
  • 1970-01-01
  • 2012-10-12
  • 2018-12-14
  • 2015-09-15
  • 2013-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多