Saturday, October 11, 2025
HomeLanguagesJavaServlet – HttpSessionEvent and HttpSessionListener

Servlet – HttpSessionEvent and HttpSessionListener

In Java, HttpSessionEvent is a class, which is representing event notifications for changes or updates to sessions within a web application. Similarly, the interface for this event is HttpSessionListener, which is for receiving notification events about HttpSession lifecycle changes. As a means to, accept these notification events, the implementation of the class must follow one of the following:

  • It should be declared in the deployment descriptor of the web application, annotated with WebListener
  • It should be registered via one of the addListener methods defined on ServletContext

There are two methods of the HttpSessionListner interface: 

  1. sessionCreated: It receives the notification that a session has been created.
  2. sessionDestroyed: It receives the notification that a session is almost invalidated.

// Parameter: se – the HttpSessionEvent containing the session

void sessionCreated(HttpSessionEvent se) 

// Parameter: se – the HttpSessionEvent containing the session

void sessionDestroyed(ServletContextEvent se) 

Example

Count the total and the active sessions, using  HttpSessionEvent and HttpSessionListener. Now, we have to create these files:

  • index.html
  • CountUserListner.java
  • LoginServlet.java
  • LogoutServlet.java

index.html: Login Credentials

HTML




<!DOCTYPE html>
<html>
  <body>
    <h2>Login Credentials</h2>
  
    <form action="servlet">  
  
      Username:<input type="text" name="username"><br>  
      Password:<input type="password" name="userpass"><br>  
  
      <input type="Submit" value="Sign-in"/>  
    </form>  
  
  </body>
</html>


CountUserListner.java: This listener class counts the total and active sessions and stores this information as an attribute in the ServletContext object.

Java




import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
  
public class CountUserListener implements HttpSessionListener{
    ServletContext scx =null;
    static int all =0, active =0;
  
    // It receives the notification that
    // a session has been created.
    public void sessionCreated(HttpSessionEvent se) 
    {
        all++;
        active++;
  
        scx =se.getSession().getServletContext();
        scx.setAttribute("All Users", all);
        scx.setAttribute("Active Users", active);
  
    }
  
      // It receives the notification that 
      // a session is almost invalidated
    public void sessionDestroyed(HttpSessionEvent se) 
    {
        active--;
        scx.setAttribute("Active Users", active);
    }
  
}


LoginServlet.java: This Servlet class creates a session and prints the total and current active users.

Java




import java.io.IOException;
import java.io.PrintWriter;
    
import javax.servlet.ServletContext;
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
  
public class LoginServlet extends HttpServlet {
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
            throws ServletException, IOException {
  
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
  
        String str = request.getParameter("Username");
        out.print("Welcome "+str);
  
        HttpSession session = request.getSession();
        session.setAttribute("Uname",str);
  
        // this retrieve data from ServletContext object
        ServletContext scx = getServletContext();
        int au = (Integer)scx.getAttribute("All Users");
        int acu = (Integer)scx.getAttribute("Active Users");
        out.print("<br>All Users = "+au);
        out.print("<br>Active Users = "+acu);
  
        out.print("<br><a href='logout'>Logout</a>");
  
        out.close();
    }
  
}


LogoutServlet.java: This Servlet class invalidates session.

Java




import java.io.IOException;
import java.io.PrintWriter;
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import javax.servlet.http.HttpSession;
  
public class LogoutServlet extends HttpServlet {
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
            throws ServletException, IOException {
  
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
  
        HttpSession session=request.getSession(false);
        
        // This invalidates the session
        session.invalidate();
  
        out.print("You are successfully logged out");
        out.close();
    }
  
}


Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32352 POSTS0 COMMENTS
Milvus
87 POSTS0 COMMENTS
Nango Kala
6720 POSTS0 COMMENTS
Nicole Veronica
11885 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11941 POSTS0 COMMENTS
Shaida Kate Naidoo
6840 POSTS0 COMMENTS
Ted Musemwa
7103 POSTS0 COMMENTS
Thapelo Manthata
6794 POSTS0 COMMENTS
Umr Jansen
6794 POSTS0 COMMENTS