【问题标题】:Tomcat resets session for each requestTomcat 为每个请求重置会话
【发布时间】:2014-11-12 23:13:45
【问题描述】:

我遇到了一个有趣的问题。我在一个使用会话的基于 servlet 的 Web 项目上工作。当我在我的开发机器和它的本地 tomcat 服务器上工作时,会话就好了。属性在一个请求中添加,并在另一个请求中使用,没有任何问题。过了一会儿,我在远程机器上部署了网站,会话管理被破坏了。

正如我所观察到的,tomcat 为每个请求触发 sessionCreated 事件并提供相同的 id。我正在使用 chrome 的开发工具来检查标头,并且浏览器似乎可以很好地发送会话 ID。由于tomcat更新会话,它会丢失属性。

顺便说一句:应用程序在 webproject.example.com 等子域下运行

context.xml 的内容非常基础

<Context antiJARLocking="true" path="" sessionCookiePath="/"/>

我在这里错过了什么?

谢谢

【问题讨论】:

  • 每个请求并提供相同的 id - 你的意思是为每个请求提供一个新的 id 吗?
  • @6ton 否。它会触发 sessionCreated 并再次更新具有相同会话 ID 的会话。
  • 检查是否有 http 服务器或负载均衡器拦截了您的请求并可能配置错误

标签: java tomcat


【解决方案1】:

确保在客户端的浏览器上启用了 cookie。如果不是,则不提供可以检索会话的持久标识符。在这种情况下,request.getSession() 将为每个请求创建一个新会话。

【讨论】:

    猜你喜欢
    • 2011-05-15
    • 2021-05-30
    • 2012-12-03
    • 1970-01-01
    • 2012-03-15
    • 2015-06-10
    • 2023-03-12
    • 1970-01-01
    • 2012-05-09
    相关资源
    最近更新 更多