A simple HttpSessionListener example – active sessions counter

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;
} @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>

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", "mkyong.com");
session.invalidate(); //sessionDestroyed() is executed