0

私はJSFにかなり慣れていないので、興味深い問題に遭遇しました。セッション タイムアウトが指定された Web アプリケーションがあり、アクションを実行してもセッションが期限切れになります。私の知る限り、すべての新しいリクエストはタイムアウトカウンターを再起動しますが、それは起こっていません。また、開発中に気付いたのは、タイムアウト後 (ログイン ページにリダイレクトされた後)、ページをリロードしてもセッションがまだ有効であるということです。同じセッション ID、カウンターがまだ進行中です...何が悪いのかわかりません。Glassfish と PrimeFaces を使用しています。

ViewExpiredException をキャッチしようとしましたが、うまくいきませんでした。リダイレクトは、

<meta http-equiv="refresh" content="#{session.maxInactiveInterval};url=login.jsf?reason=expired>

方法。たぶん、web.xml に明らかな何かが欠けているかもしれません。アイデアがありません。

これについて何かアドバイスをください、どうもありがとうございました!

4

1 に答える 1

2

使用しているアプローチは、セッション タイムアウトの実装に最適ではありません。その理由は、メタ タグが特定の間隔でページを更新するためです。この場合、更新時に別の URL にリダイレクトされます。

つまり、 の値が の場合session.maxInactiveInterval、ユーザーの操作に関係なく5、ページは 5 秒で更新され、 にリダイレクトされlogin.jsf?reason=expiredます。ページの更新のみがカウンターをリセットします。

メタタグについて詳しくはこちら

アイドル モニターを実装する場合は<p:idleMonitor>Primefaces ショーケース - IdleMonitorをご覧になることをお勧めします。

于 2012-11-20T12:53:40.660 に答える