从iFrame内传播时,HttpServletRequest属性会丢失

时间:2017-05-03 10:50:36

标签: jsp tomcat servlets iframe web-applications

我的webapp有一个基于iframe的测试,我可以看到(浏览iframe时)以下内容:

1)当我在JSP上设置HttpServletRequest会话属性时,对于firefox,它正在按预期捕获/保留。

request.getSession().getAttribute("myAttr") // returns what I want

2)我在页面之间移动并使用调试器检查上面的内容,我可以确认行为没问题。

3)当我使用Chrome时,我无法再在连续请求中看到请求会话属性:

request.getSession().getAttribute("myAttr") // Returns NULL

我通过输入过滤器(在我的web.xml中定义)跟踪了这一点,并且一旦发出新请求,所有会话属性实际上都会丢失。这只适用于Chrome和IE,而不是Firefox和Opera。

从外观上看,在我看来,对于Chrome / IE,每个请求都是通过清理所有会话属性来准备和发送的。但对我来说,这似乎是一个特定于浏览器的问题。此外,我确信这有一个简单的解释,但不记得是什么。

顺便说一句 - 当没有在iFrames中完成时,所有浏览器都能正常工作。

有人可以请我朝正确的方向发展吗?

1 个答案:

答案 0 :(得分:0)

有趣的是,这是因为我的iframe网站阻止了Cookie。因此,只要我将网站列入白名单,就可以正常工作!!

这是预期的行为吗?既然firefox和Edge没有这个问题呢?我的意思是,我不必为Firefox和Edge做同样的事情,它们可以正常工作。