注意JSP使用FrameSet的session丢失问题

在编写动态页面的时候要注意,如果使用了FrameSet框架,就可能在子页中丢失session对象。


我做了一个试验,写了三个jsp页面A、B、C,A是FrameSet框架页,B、C是两个子页,分别在A、B、C中打印session对象,在IE上访问A。结果发现在三个页面打印的session是不同的。准确的讲,是有的时候相同,有的时候不同,不稳定。


问题根源: 
IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie,Firefox目前还不支持P3P安全特性,firefox中自然也不存在此问题了。Mircosoft对此的具体描述可以参见 Privacy in Internet Explorer 6。
通过在A中加入以下java代码得到解决:

response.setHeader("P3P","CP=\"NON DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa HISa TELa OTPa OUR UNRa IND UNI COM NAV INT DEM CNT PRE LOC\"");


参考文章:
《iframe跨域session丢失问题》
http://wenku.baidu.com/view/ea504514866fb84ae45c8d2c.html

《P3P解决cookie存取的跨域问题》
http://www.cnblogs.com/love2wllw/archive/2010/04/09/1708585.html

《P3P script src 解决cookie存取的跨域问题 java 终极解决办法》
http://blog.csdn.net/leidengyan/article/details/4217281

《使用frame注意session陷阱》
http://blog.csdn.net/sunyujia/article/details/2574006

《IFrame中Session丢失的解决办法……》

http://www.cnblogs.com/imghu/archive/2011/08/11/2134628.html


猜你喜欢

转载自blog.csdn.net/caim/article/details/7265447