httpsessionbindinglistener example

Before going into the details of the HttpSessionBindingListener we should firstly know about the sessions. As we know that Http protocol is a "stateless" protocol. The term stateless means that it can't persist the information. It can't remember the previ

httpsessionbindinglistener example

httpsessionbindinglistener example

     

Before going into the details of the HttpSessionBindingListener we should firstly know about the sessions. As we know that Http protocol is a "stateless" protocol. The term stateless means that it can't persist the information. It can't remember the previous transactions. Whenever a client makes a request for any resources to the server, the server receives the request and processes the request and sends back the response. After sending the response the server closes the connection and forgets about the previous requests. Whenever a client sends any request to the server, the server treats each request as a new request. To remove this we have been provided the facility of the session. In session tracking whenever a client sends a request to the server then server creates a unique id for that request and sends back the unique id to the client along with the response object, now whenever a client sends a request to the server it also sends a unique id with it so that the server can know from where the request is coming. 

HttpSessionBindingListener is a interface which extends java.util.EventListener interface. The purpose of the this interface is to notify an object when it is bound to or unbound from a session.

This interface has two methods:

  1. valueBound(HttpSessionBindingEvent event): It notifies the object that is being bound to a session and is responsible for identifying the session.
  2. valueUnBound(HttpSessionBindingEvent event): It notifies the object that is being unbound from a session and is responsible for identifying the session.

In the above method we can see that we have used the class HttpSessionBindingEvent as a argument to the methods. The object is notified by an HttpSessionBindingEvent object

This class has two methods:

  1. getName(): It returns the name with which the object is bound or unbound from the session.
  2. getSession(): This method returns the session to or from which the object is bound or unbound.

The code of the program is given below:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class SessionBindingListenerExample extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
// Get the current session object, create one if necessary
HttpSession session = req.getSession();
// Add a UserName
session.setAttribute("name",
new UserName(getServletContext()));
out.println("This is the example of HttpSessionBindingListener");
}
}

 

import javax.servlet.*;
import javax.servlet.http.*;

public class UserName implements HttpSessionBindingListener {
ServletContext context; 
public UserName(ServletContext context){
this.context = context;
}
public void valueBound(HttpSessionBindingEvent event) {
context.log("The value bound is " + event.getName());
}
public void valueUnbound(HttpSessionBindingEvent event) {
context.log("The value unbound is " + event.getName());
}
}

The output of the program is given below:

Download this example.