【问题标题】:Java web development: Sessions are not saved between requests and a new JSESSIONID is createdJava Web 开发:请求之间不保存会话,并创建新的 JSESSIONID
【发布时间】:2013-04-23 03:44:19
【问题描述】:

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

最烦人的是我之前一直在处理这个问题,没有任何问题。

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

一些简单的故障排除:

  • 我可以很好地创建和使用 cookie。
  • 每次我刷新或点击指向 servlet 或 jsp 的链接时, jsessionid 正在获得一个新的 ID。
  • 在 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上的第一篇文章,在此之前已经找到了很多答案,希望有人能告诉我我在哪里是个白痴。希望我已经给出了全面的细节。提前致谢。

【问题讨论】:

  • 也许应该节点服务器正在运行wamp,并且apache服务器和tomcat并排运行。我还说 jsessionid cookie 在 chrome 中不可见,这是一个错误。它是可见的。

标签: java session tomcat cookies jsessionid


【解决方案1】:

当您不完全了解问题所在时,有时很难找到解决方案。

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

这是任何可能偶然发现我提出问题的方式的其他人的链接。

Apache 2.2 Virtual hosts + Tomcat 7 applications

添加 ProxyPassReverseCookiePath /testapp / 到 httpd 配置。

【讨论】:

    猜你喜欢
    • 2014-08-28
    • 2013-05-11
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    相关资源
    最近更新 更多