3

asp.netにはGlobal.asaxがあり、session_startメソッドがあり、新しいユーザーが最初にアクセスしたときに実行されます。それはjspで同様のものですか?

インターセプターを使用できるというアドバイスを受けましたが、インターセプターが session_start をキャプチャする方法についてはまだ混乱しています

4

2 に答える 2

3

HttpSession ライフサイクルの変更に関する通知イベントを受信するためのインターフェースであるHttpSessionListenerを使用します。

そのsessionCreated(HttpSessionEvent)メソッドをオーバーライドします。サンプルコード:

public class SessionListener implements HttpSessionListener {

  /**
  * Receives notification that a session has been created.
  */
  @Override
  public void sessionCreated(HttpSessionEvent se) {
       HttpSession session = se.getSession(); \\ handle to HttpSession Object
   System.out.println("sessionCreated");
  }

  /**
  * Receives notification that a session is about to be invalidated.
  */
  @Override
  public void sessionDestroyed(HttpSessionEvent se) {

  } 
}

リスナ クラスを Deployment Descriptor に追加しますweb.xml

 <listener>
    <listener-class>SessionListener</listener-class>
 </listener>

Servlet 3.0のような苦情コンテナを使用している場合は @Luiggi が指摘したように、でリスナーを宣言する代わりに@WebListenerアノテーションをTomcat 7使用してリスナー クラスを定義することができますが、すべてのリスナー情報を見つけることができるため、オーソドックスなアプローチを好みます (バインディング リスナーを除く) 。 1 つのファイル自体に。web.xml

于 2013-05-14T05:51:27.727 に答える