0

これはかなり基本的な質問です。私は JSF Web アプリに関する教科書から学んでおり、@SessionScoped Bean を使用してセッションを管理しています。この本は、ブラウザを閉じるとセッションが終了すると述べており、これはテストで簡単に確認できました. しかし、ブラウザーが閉じられて再度開かれたことを Web アプリがどのように通知されるかはわかりません。ローカルに Cookie ストアが見つかりませんでした。では、Web アプリはどのようにしてこの情報を取得するのでしょうか?

ありがとう!

4

2 に答える 2

1

魔法を行うのはセッション Cookieです。

于 2012-04-05T19:07:41.877 に答える
0

実際、アプリケーションの Web ページに到達すると、http セッションが開始されます。次に、ブラウザは、後続のリクエストの識別子として使用される sessionId を保存します。

そのため、ブラウザーが閉じられている場合、アプリケーションがそれを認識する方法はありません。

サーバー側からセッションを終了する唯一の方法は、web.xml でタイムアウトを設定することです。タイムアウトがトリガーされる前にブラウザーからの要求がない場合、 @PreDestroy で注釈が付けられたこのセッションのマネージド Bean 内のすべてのメソッドが呼び出され、サーバー側ですべてがクリーンアップされます。

于 2012-04-06T10:36:55.827 に答える