ここでは、Webアプリケーション内のアクティブなセッションの総数を追跡する簡単な「HttpSessionListener」の例を示します。セッションの作成と削除の動作を監視したままにしたい場合は、このリスナーを検討してください。

Javaソース

package com.mkyong;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class SessionCounterListener implements HttpSessionListener {

  private static int totalActiveSessions;

  public static int getTotalActiveSession(){
    return totalActiveSessions;
  }

  @Override
  public void sessionCreated(HttpSessionEvent arg0) {
    totalActiveSessions++;
    System.out.println("sessionCreated - add one session into counter");
  }

  @Override
  public void sessionDestroyed(HttpSessionEvent arg0) {
    totalActiveSessions--;
    System.out.println("sessionDestroyed - deduct one session from counter");
  }
}

web.xml

<web-app ...>
        <listener>
        <listener-class>com.mkyong.SessionCounterListener</listener-class>
    </listener>
</web-app>

どのように動作するのですか?

  HttpSession session = request.getSession();//sessionCreated() is executed
  session.setAttribute("url", "mkyong.com");
  session.invalidate(); //sessionDestroyed() is executed