Java EE会话问题 - IE / Chrome上的不同行为&火狐

时间:2012-05-14 12:50:46

标签: java-ee session-variables

我目前正在研究部署在OracleAS服务器上的Java EE应用程序(Struts 1.1)(非常古老的技术......)

从页面上的会话重新加载数据存在问题。

简而言之,根据浏览器的不同,会话的行为也不尽相同。我一直在尝试在Eclipse + Tomcat上调试它,并且我看到的行为(假设也存在相同的错误,我猜测OracleAS上的行为是相同的):

在Firefox上我第一次打电话

session.setAttribute("myobject",myform);

我检查时指出的参考是:

com.project.ObjectForm@1a0e2d1 [.....]

在下一页上,当我加载相同的对象(从未再次使用setAttribute修改)时:

ObjectForm myform = session.getAttribute("myobject");

现在引用

com.project.ObjectForm@1a0e2d1 [.....]

值是相同的,子对象的引用也一样,一切正常。

在IE和Chrome上,当我使用setAttribute(...)和 com.project.ObjectForm@1ee2c5 时,引用会更改( com.project.ObjectForm@ad8e84 )我使用getAttribute(...)再次加载到下一页,测试的页面与具有相同用户数据的Firefox完全相同,等等...更糟糕的是,有些数据实际上已经丢失了! ObjectForm的字符串示例之一从 forward = success 转到 forward = ,因此该错误!

我的第一个问题是:这一切都正常吗?为什么哦为什么会话(服务器端)的行为会因浏览器的不同而有所不同,我不是会话专家,所以我假设我的知识缺乏?

第二个是:我的数据实际上是否可能与我自己的setAttribute和getAttribute相比有所改变(因为在firefox上引用看起来是相同的,如果我要更改对象,它会直接在我的会议?)?

我已经检查了传递的浏览器数据,jsessionid在两种情况下都很好,所以它似乎不是来自这里。

0 个答案:

没有答案