Java Web开发:请求之间不保存会话,并创建新的JSESSIONID

时间:2013-04-29 12:59:39

标签: java session tomcat cookies jsessionid

我有一个问题,我过去几天一直在网上搜索。我发现有类似问题的人,但解决方案没有推进我的状态。

最令人恼火的是,我之前一直在使用它,没有任何问题或任何障碍。

问题是我的java web应用程序上的会话要么在请求之间被删除,要么在创建之后没有正确创建。

一些简单的故障排除:

  • 我可以很好地创建和使用cookies。
  • 每次刷新或跟踪指向servlet或jsp的链接时,都会 jsessionid正在获得新的身份。
  • 在Chrome上,我无法看到会话cookie(但其他Cookie我是 能)。
  • 在firefox上,我可以查看会话cookie(以及它的id是 每次请求都要改变。)

我之前就已经开始工作了,甚至没有给出任何想法。

我只是使用: 在jsp我只是session.get / setAttribute() 在servlet中我只是request.getSession()

我也查看了getSession(boolean created),但就我而言,getSession()应该为我做这个吗?

我的服务器正在运行Tomcat 7并拥有Servlet 3。 我可以看到使用servlet 3,我必须在web.xml文件中声明一些内容,我的会话配置如下: <session-config> <session-timeout>30</session-timeout> <tracking-mode>COOKIE</tracking-mode> </session-config>

您认为我在代码中做错了什么?它似乎很简单,并且以前曾经使用过它。但这是我第一次完成设置服务器配置的任务。

这是我关于stackoverflow的第一篇文章,在此之前已经找到了很多答案,希望有人能告诉我我在哪里是个白痴。希望我已经提供了全面的细节。提前谢谢。

1 个答案:

答案 0 :(得分:1)

当你不确切地知道问题是什么时,有时很难找到解决方案。

问题在于tomcat的apache代理设置。

以下是其他任何可能偶然发现问题的人的链接。

Apache 2.2 Virtual hosts + Tomcat 7 applications

添加ProxyPassReverseCookiePath / testapp / 到httpd配置。