当前位置: 首页 > 知识库问答 >
问题:

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

寿意远
2023-03-14

我有一个问题,过去几天我一直在网上搜索。我发现有类似问题的人,但世卫组织的解决方案并没有改善我的状况。

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

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

一些简单的故障排除:

  • 我可以很好地创建和使用cookie。
  • 每次我刷新或跟踪指向servlet或jsp的链接时,jsesionid都会得到一个新的id。
  • 在chrome上,我看不到会话cookie(但我可以看到其他cookie)。
  • 在Firefox上,我可以看到会话cookie(并且它的id在每次请求时都在更改)。

我以前从未想过要这样做。

我只使用:In jsp I just会话。我只是请求servlet中的get/setAttribute()。getSession()

我也研究了getSession(布尔创建的),但就我而言,getSession()应该为我做吗?

我的服务器运行Tomcat 7,有Servlet 3。我可以看到servlet 3,我必须在web.xml文件中声明一些东西,我的会话配置如下:

你认为我在我的代码中做错了什么?这看起来很简单,以前也用过几次。但这是我第一次有任务也设置服务器配置。

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


共有1个答案

公西博实
2023-03-14

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

问题是tomcat的apache代理设置。

这里有一个链接,供其他可能会偶然发现我提出问题的方式的人使用。

Apache 2.2虚拟主机Tomcat 7应用程序

将ProxyPassReverseCookiePath/testapp/添加到httpd配置中。

 类似资料:
  • 问题内容: 我是Hibernate的新手,上周完成了Hibernate教程。我对Session类中的方法save,update,saveOrUpdate和merge有一些疑问。这些是: 保存方法: 用于将新创建的对象插入数据存储区。(为此,基本标识符值将为0)。就像我创建一个新客户并调用保存操作一样,它将把它持久保存在数据存储区中并生成标识符。 它是否正确?如果我们在已经存在的对象上调用保存,则不

  • 我有一些wicket面板存储在不同会话的静态Hashmap中,我想做一些,比如如果某个面板通知地图,那么地图通知所有其他面板。例如: 在面板中,newNotification(String notification)我想向服务器发送请求,并在浏览器中刷新我的面板。 我在wicket行为源文件中进行了一些搜索,在中发现,我试图在wicket面板中创建自己的onRequest方法,如下所示 更新:我需

  • 我有一个遗留的Java1.6运行localhostTomcat 7应用程序使用JSP页面,一个带有框架的框架集,javascript,但没有像Struts这样的框架。我使用请求或会话从servlet传递一个对象以在页面中显示,这很好。 然而,我最近做了一些更改,现在我无法从会话或请求中检索到相同的对象。它以前工作得很好,所以我不确定是什么坏了,但我甚至无法将字符串值从JSP返回到servlet。

  • 问题内容: 发送带有用户名和密码的POST请求后,如何使用Jsoup保存cookie?还是我必须先将它们提供给连接对象然后保存? 问题答案: 假设HTML表单如下所示: 您可以发布它并获取cookie,如下所示: 您可以按以下要求将Cookie传递回去: 或者,如果您知道单个Cookie的名称,则:

  • 问题内容: 我刚刚启动了一个简单的Java测试项目,该项目使用Hibernate管理某些实体,并提供REST接口来操纵这些对象并提供一些其他业务逻辑。REST接口是使用RESTEasy和Jetty创建的。 到目前为止,一切工作正常,但是我感觉我实际上写了太多样板代码。由于我在这些Java框架中没有太多经验,所以我只是想知道是否有人可以给我提示如何改善这种情况。 每个请求创建hibernate会话

  • 问题内容: 当取消注释时,我们将在第二种方法中获得en异常- 当作者。 为什么会这样呢? 问题答案: 问题似乎是Hibernate引发了一个异常(因此当前事务无效),但是随后您尝试在该会话中继续执行更多操作。 正确的方法是将您使用的测试分为2部分,一部分测试空作者,另一部分测试有效作者。 在生产代码(例如控制器)上,您需要重新启动操作(关闭事务,重新启动流程)才能继续。但是,考虑到游戏管理交易的方