HttpSessionEvent in Servlet and HttpSessionListener in Servlet

HttpSessionEvent in Servlet and HttpSessionListener in Servlet

HttpSessionEvent class gives notices for changes to sessions inside of a web application. HttpSessionListener gets notices of changes to the rundown of dynamic sessions in a web application and perform some activity. HttpSessionListener is utilized to perform some imperative assignments when a session is made or devastated. For instance: tallying the quantity of dynamic session.

Methods of HttpSessionListener interface

  1. public void sessionCreated(HttpSessionEvent e): is invoked when session object is created.
  2. public void sessionDestroyed(ServletContextEvent e): is invoked when session is invalidated.

Example of HttpSessionEvent

Index.html

<form action="servlet1">
Name:<input type="text" name="username"><br>
Password:<input type="password" name="userpass"><br>

<input type="submit" value="login"/>
</form>

MyListener.java

import javax.servlet.ServletContext;   
import javax.servlet.http.HttpSessionEvent;   
import javax.servlet.http.HttpSessionListener;   
  
public class CountUserListener implements HttpSessionListener{   
    ServletContext ctx=null;   
    static int total=0,current=0;   
       
    public void sessionCreated(HttpSessionEvent e) {   
    total++;   
    current++;   
       
    ctx=e.getSession().getServletContext();   
    ctx.setAttribute("totalusers", total);   
    ctx.setAttribute("currentusers", current);   
       
    }   
  
    public void sessionDestroyed(HttpSessionEvent e) {   
        current--;   
        ctx.setAttribute("currentusers",current);   
    }   
  
} 

First.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 First extends HttpServlet {   
public void doGet(HttpServletRequest request,   
 HttpServletResponse response)   
    throws ServletException, IOException {   
  
        response.setContentType("text/html");   
        PrintWriter out = response.getWriter();   
       
        String n=request.getParameter("username");   
        out.print("Welcome "+n);   
           
        HttpSession session=request.getSession();   
        session.setAttribute("uname",n);   
           
        //retrieving data from ServletContext object   
        ServletContext ctx=getServletContext();   
        int t=(Integer)ctx.getAttribute("totalusers");   
        int c=(Integer)ctx.getAttribute("currentusers");   
        out.print("
total users= "+t);            out.print("
current users= "+c);                        out.print("
logout");                        out.close();        }       }  

Logout.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);   
        session.invalidate();//invalidating session   
           
        out.print("You are successfully logged out");   
           
           
        out.close();   
    }   
  
}