【发布时间】:2017-10-01 03:51:42
【问题描述】:
我的 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 中完成,所有浏览器都可以正常工作。
有人可以请我朝正确的方向前进吗?
【问题讨论】:
标签: jsp tomcat servlets iframe web-applications