8

JSF 2.0 Flash スコープが Cookie を介して Mojarra 2.x に実装されていることがわかりました。Flash を使用してビュー A からビュー B に移動すると、JSF がリダイレクト応答を送信するようです。set-cookie ヘッダーを含むのは、これと同じ応答です。

Cookie はブラウザーに対してグローバルであるため、これが競合状態につながる可能性はどのくらいあるのだろうか。Cookie はリダイレクト応答中に設定されるため、ブラウザが応答として発行する要求が常に最初にこの Cookie を使用することを HTTP 仕様が何らかの形で保証しているかどうかを確認しようとしました。

ただし、一般に、この最初のリクエストが何らかの理由で停止した場合 (インターネットがその特定のリクエストを地球の反対側にルーティングすることを決定したため)、別のタブから発信された 2 番目のリクエストが最初にサーバーに到着した場合、問題が発生する可能性があります。

2 つのページ間のフラッシュ スコープに Cookie を使用するのはひどい考えではないでしょうか。

4

1 に答える 1

2

ファイルや Cookie などのリソースがある場合、競合状態になる可能性は常にあります。しかし、それを回避する方法を調査する必要があります。

完全に保存するための答えはEJB 3.0だと思います。EJB 3.0 を使用するのは、トランザクションが安全だからです。データベースにデータを挿入するために EJB にリクエストを渡すのと同じ方法で、EJB をネゴシエーターとして使用してフラッシュ スコープと対話できます。そうすれば、あなたの取引は保護され、レース条件のリスクがなくなります。

于 2011-06-23T20:20:12.837 に答える