Menu

Understanding Session Lifecycle Events

Servlet: HttpSessionEvent and HttpSessionListener

HttpSessionEvent class gives notifications for changes to sessions within a web application. HttpSessionListener receives notifications of changes to the list of active sessions in a web application and perform some action. HttpSessionListener is used to perform some important tasks when a session is created or destroyed. For example: counting the number of active session.

Listener Description
HttpSessionActivationListener Let's you know when a session moves from one Virtual machine to another.
HttpSessionBindingListener Le's your attribute class object get notified when they are added or removed from session.
HttpSessionAttributeListener Let's you know when any attribute is added, removed or replaced in a session.

Methods of HttpSessionListener

Methods Description
void sessionCreated(HttpSessionEvent e) notification that a session was created.
void sessionDestroyed(HttpSessioEvent e) notification that a session was destroyed.

Example of HttpSessionListener

In this example we will create a session listener that will count the number of active sessions in a web application.

MySessionCounter.java

import javax.servlet.http.*;

public class MySessionCounter implements HttpSessionListener {

    private static int sessionCount; 
    
    public int getActiveSession()
    {
        return sessionCount;
    }
   
    public void sessionCreated(HttpSessionEvent e) 
    {   
        sessionCount++;  
    }

    public void sessionDestroyed(HttpSessionEvent e) 
    {
        sessionCount--;
    }
}

web.xml

<web-app ...>
    <listener>
        <listener-class>MySessionCounter</listener-class>
    </listener>
</web-app>