2

私は JSF を初めて使用し、Scopes と Http セッションのライフサイクルについて調査していましたが、1 つのことが明確ではありませんでした。

私は、ExternalContext から sessionMap を使用して変数を格納できることを知っています。以前は、必要なものに対して非常にうまく機能していました。また、セッションが無効になると、マップに保存されているすべてのデータが失われることも知っています。

しかし、私が知らないのは、ページが更新されるとセッションが無効になるということです?

Web アプリケーションからボタンの 1 つにダウンロード リクエストを送信する必要があるときに、問題が発生しました。どうやら Ajax 経由でダウンロード リクエストを行うことはできないため、ページ全体を更新する必要があります。ダウンロードは正常に進行しますが、その後、すべてのマネージド Bean を含め、マップに保存されているすべてのデータが失われます。ユーザーデータ自体は、保存してから新しいセッションマップに再度配置できるため、それほど重要ではありません。しかし、マネージド Bean はどうでしょうか。どのように進めればよいですか?

4

1 に答える 1

2

不正な動作をしたのは Web ブラウザーではないと仮定すると、これは、サーバー側のコードが実際にそれ自体で、ExternalContext#invalidateSession()またはを呼び出してセッションを無効にしている場合にのみ発生する可能性がありますHttpSession#invalidate()

それを突き止めることができない場合は、メソッドを作成しHttpSessionListenerてデバッグ ブレークポイントを配置し、sessionDestroyed()それを開始したコール スタックとその理由を調査します。

于 2012-10-23T15:12:30.330 に答える