109
HttpSessionEvent and HttpSessionListener
Methods of HttpSessionListener interface
Example of HttpSessionEvent and HttpSessionListener to count total and current logged-in users
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.javaimport 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.javaimport 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("<br>total users= "+t); out.print("<br>current users= "+c); out.print("<br><a href='logout'>logout</a>"); out.close(); } } Logout.javaimport 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(); } } |