無効になる前にHttpSessionからデータを取得するために、セッションタイムアウトイベントを「キャッチ」する方法はありますか?
Filter Interfaceを実装しており、doFilterメソッドでは、ログイン時にセッションオブジェクトに保存したユーザーは、セッションがタイムアウトするとnullになります。
前もって感謝します。
無効になる前にHttpSessionからデータを取得するために、セッションタイムアウトイベントを「キャッチ」する方法はありますか?
Filter Interfaceを実装しており、doFilterメソッドでは、ログイン時にセッションオブジェクトに保存したユーザーは、セッションがタイムアウトするとnullになります。
前もって感謝します。
セッションが破棄されたときに通知を受け取ることができるように、WebアプリケーションにHttpSessionListenerを登録できるはずです。
2つのコールバックメソッドがあります。
public void sessionCreated(HttpSessionEvent se)
public void sessionDestroyed(HttpSessionEvent se)
HttpSessionEvent
クラスには、影響を受けるセッションを取得できるようにするメソッドgetSession
があります。
リスナークラスはに登録されていますweb.xml
<listener>
<description>My Session Listener</description>
<listener-class>
my.package.MySessionListener
</listener-class>
</listener>
ユーザーオブジェクトにHttpSessionBindingListenerを実装させると、セッションに追加またはセッションから削除されたときにそれ自体を確認できます。
セッションがまだアクティブか有効かを確認するJSPをいつでもアドバタイズできます。基本的に、セッション変数が存在するかどうか(!= null)を確認し、存在しない場合は、ユーザーを別のページにリダイレクトします。
<%
// check for session object
HttpSession validuser = request.getSession();
// check to see if session var exists
if (validuser.getValue("auth_user") == null) {
response.sendRedirect("admin3.jsp?access+denied");
}
// if the session var is null then redirect the user
これがマークに役立つことを願っています
ソース: http: //www.coderanch.com/t/279538/JSP/java/jsp-session-timeout