1. 程式人生 > >注意JSP使用FrameSet的session丟失問題

注意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