0

JSF 2.0(MyFaces)上に構築され、Weblogicアプリサーバー上で実行されるアプリケーションがあります。httpセッションに関する問題に直面しています。

問題: 2つの異なるIEウィンドウでアプリを開き、最初のウィンドウで検索入力を行ったとします。最初のウィンドウで受信した検索結果データは、2番目のウィンドウのセッションで共有されています。

注:。Beanはsessionスコープされ、javax.faces.STATE_SAVING_METHODですserverstatic変数が共有される問題はありません。

なぜこれが起こっているのか、そしてもしあればこれを防ぐための解決策はありますか?

よろしく、シャジ。

4

2 に答える 2

4

公開された動作は予期されたものです。「ウィンドウ」スコープが必要な場合は、MyFaces CODI Wiki @WindowScoped を参照してください。その他の代替手段は、MyFaces Orchestra を使用し、別の会話コンテキストを使用することです。

JSESSIONID は、セッションを区別するためにサーブレット仕様で使用される Cookie ですが、同じブラウザーのすべてのウィンドウで共有されます。

詳細については、MyFaces Users および Dev Mailing Lists で質問してください。

于 2011-06-25T21:12:53.970 に答える
3

これは、IE がセッション IDJSESSIONIDを Cookie に保持するためです。その Cookie は、同じ IE の「スペース」に存在します。IE と Firefox を使用している場合、セッション Cookie が共有されないことに気付くでしょう。

JSESSIONID基本的に、Web コンテナがセッション トラッキングに使用する識別子です。ブラウザーが Cookie をサポートしていない場合、ID は URL に追加されます。あなたの場合、JESSIONID が Cookie に保存されており、複数のウィンドウすべてが同じセッション Cookie を見ることができます。

于 2011-04-08T09:51:05.210 に答える