Java Struts 1和Struts2之间的会话创建差异?

Java Struts 1和Struts2之间的会话创建差异?,java,session,struts2,Java,Session,Struts2,我正在将Struts 1应用程序转换为Struts 2,遇到了一个奇怪的会话问题 我们使用Apache重写规则将/page的URL更改为/app/proj/page,这对两个应用程序都适用。但是,每次在Struts 1应用程序中转到/page时,我们都会保持相同的会话(路径/使用相同的JSESSIONID),但在Struts 2应用程序中,我们每次都会获得一个新会话(每次都会为路径/应用程序创建不同的JSESSIONID) 我已经在Struts 2文档中,在Google和这里做了一些搜索,但是我

我正在将Struts 1应用程序转换为Struts 2,遇到了一个奇怪的会话问题

我们使用Apache重写规则将/page的URL更改为/app/proj/page,这对两个应用程序都适用。但是,每次在Struts 1应用程序中转到/page时,我们都会保持相同的会话(路径/使用相同的JSESSIONID),但在Struts 2应用程序中,我们每次都会获得一个新会话(每次都会为路径/应用程序创建不同的JSESSIONID)

我已经在Struts 2文档中,在Google和这里做了一些搜索,但是我找不到任何东西表明Struts 1和Struts 2处理会话的方式有什么不同,所以我猜这是一个配置或Java操作更改,这是必需的

由于我是Struts 2的新手,我显然错过了一些东西,所以任何建议都会受到感激

谢谢

Z

后续:我还不能发布我自己的答案,但我们已经解决了,这就是我要发布的内容:

谢谢大家的帮助。现在,我们已经使用Apache中的ProxyPassReverseCookiePath设置成功地保留了会话。这里详细介绍了StackOverflow:

如何在反向代理后正确设置JSESSIONID cookie路径

我们通过以下方式实施:

ProxyPassReverseCookiePath/app2/

在apache httpd-vhosts.conf中

谢谢


Z

您是否使用url重写进行会话跟踪?我的意思是你禁用了cookie吗?随着新的Struts 2和旧的Struts 1应用程序的部署,我所做的只是改变重写规则在Apache中的位置并重新启动Apache,所以cookie处理方面没有任何变化。从你的问题来看,这不是很清楚。所以我必须再问几个问题:这些页面是经过身份验证的页面,当您在页面之间切换时会丢失会话,还是只是一个新的jsessionId?当您转到/page时,是否比较了这两个应用程序的标题?您使用的是哪一个(如果S1和S2的标题不同的话)?