2

無効になる前にHttpSessionからデータを取得するために、セッションタイムアウトイベントを「キャッチ」する方法はありますか?

Filter Interfaceを実装しており、doFilterメソッドでは、ログイン時にセッションオブジェクトに保存したユーザーは、セッションがタイムアウトするとnullになります。

前もって感謝します。

4

3 に答える 3

11

セッションが破棄されたときに通知を受け取ることができるように、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>
于 2010-06-17T18:17:03.467 に答える
0

ユーザーオブジェクトにHttpSessionBindingListenerを実装させると、セッションに追加またはセッションから削除されたときにそれ自体を確認できます。

于 2010-06-17T23:47:56.687 に答える
0

セッションがまだアクティブか有効かを確認する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

于 2013-01-25T11:33:53.300 に答える