iframeのセッションとクッキーの特殊な問題


前の时间はプロジェクトを维持する时、取引先の要求に応じて新しい1つのネストして他のウェブサイトのトップページの中の登录の小さいページをする必要がありますまず登録に成功したセッションの値が成功ページに取れなかったり、クッキーにアクセスしたワンポイント登録情報も取れなかったりして、最後にGoogleで検索してdemoテストに合格した後、やっと修正が完了しました.汗!!!まとめてみます.
セッションで取れない問題:
ログインページに認証コードがセッションに格納されている場合は、コミットしたurlにjsessionidを追加する必要があります.
imageを引用するjsp書き方:
<img src="<%=request.getContextPath()%>/webadmin/js/imagecode2.jsp;jsessionid=<%= session.getId()%>" name=Image1 border=0 >

提出先の書き方:
form action="<%=request.getContextPath()%>/webadmin/userselfservice/login/login.do;jsessionid=<%=session.getId()%>"

このようにBactionでは、同じセッションを取得する、ランダム検証コードを取得することができる.これで成功したと思ってはいけない.大きな罠がある.Aプラットフォームからセッション値をBプラットフォームに渡したが、Bactionで追加された新しいセッション属性(例えば、ユーザー情報)が、Bactionの後、Bプラットフォームの他のページが取れないことが分かった.これはなぜですか??セッションIdを伝え続ける必要があるのか?確かに、後でsessionIdを伝え続ける必要があります...このままではシステムが混乱する.だから私たちはsessionIdにこのように私たちを牽制させることはできません.私たちはそれを消滅させます.いいですね.Bactionの前に、私たちは同じセッションを使用しなければなりませんが、Bプラットフォームで操作した後、私たちは彼と関係を断絶します.そうすれば、私たちは自由になります.Bactionに入ったら、必要なセッションの値を取り出し、破棄して新しいセッションを作成します.
request.getSession().invalidate();
HttpSession newSession = request.getSession(true);

必要な値をnewSessionに設定すればいいです.
クッキーが取れない問題:
ie 6のみに対してこの問題が発生した.ここではJavaScript方式でssotockenを配置するクッキーのjspページにセグメントコードを追加します
<%response.setHeader("P3P","CP=CAO PSA OUR");%>

できます.