Here’s a simple “HttpSessionListener” example to keep track the total number of active sessions in a web application. If you want to keep monitor your session’s create and remove behavior, then consider this listener.

Java Source

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;
  public void sessionCreated(HttpSessionEvent arg0) {
	System.out.println("sessionCreated - add one session into counter");

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


<web-app ...>

How it work?

– If a new session is created , e.g “request.getSession();” , the listener’s sessionCreated() will be executed.
– If a session is destroyed, e.g session’s timeout or “session.invalidate()”, the listener’s sessionDestroyed() will be executed.

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