Java Servlet Programing Laungage

Java Servlet Projects

Servlet Project 3

adplus-dvertising
Create an application for access HttpSessionBindingListener Interface through servlet
Previous Home Next

In this program, access HttpSessionBindingListener Interface which provide two method valueBound and valueUnbound provide information about
session.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
 <servlet>
   <servlet-name>sessionBindingServlet</servlet-name>
   <servlet-class>r4r.servlet.sessionBindingServlet</servlet-class>
 </servlet>
	<servlet-mapping>
        <servlet-name>sessionBindingServlet</servlet-name>
        <url-pattern>/sessionBindingServlet</url-pattern>
    </servlet-mapping>
	 <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

Index.jsp

<%-- 
    Document   : index.jsp
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
       <meta http-equiv="Content-Type"
	         content="text/html; charset=UTF-8">
       <title>r4r.co.in-servlet</title>
    </head>
    <body>
      <form>
       <h1>Access Servlet by servlet's Name!</h1>
       <a href="sessionBindingServlet">sessionBindingServlet</a>
      </form>
    </body>
</html>

Servlet Program

/*
 * Save as a sessionBindingServlet.java
 */
package r4r.servlet;
import java.io.*;
import java.text.*;
import java.util.Calendar;
import javax.servlet.*;
import javax.servlet.http.*;

/**
 *
 * @author R4R
 */
public class sessionBindingServlet extends HttpServlet {

 protected void processRequest
 (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
  response.setContentType("text/html;charset=UTF-8");
  PrintWriter out = response.getWriter();
  try {
/* TODO output your page here */
out.println("<html>");
out.println("<head>");
out.println("<title>" + getServletInfo() + "</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet sessionBindingServlet at " 
	          + request.getContextPath() + "</h1>");
out.println
 ("<form action=\"sessionBindingServlet\" method=\"POST\">");
out.println
 ("<input type=\"submit\" value=\"SessionBinding\"/>");
out.println("</form>");
out.println("</body>");
out.println("</html>");
  } finally {
out.close();
  }
 }

 @Override
 protected void doGet
 (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
  processRequest(request, response);
 }

 @Override
 protected void doPost
(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
  response.setContentType("text/html;charset=UTF-8");
  PrintWriter out = response.getWriter();
  try {
//get session if necessary then create a new session
HttpSession session = request.getSession();
// pass value in session attribute
session.setAttribute("sessionBinding",
	new SessionBindingListener(getServletContext(), out));
  } finally {
// free resource
out.flush();
out.close();
  }
 }

 @Override
 public String getServletInfo() {
  return "r4r.co.in-sessionBindingServlet";
 }
}
SessionBindingListener Program -

/*
 * Save as a SessionBindingListener.java
 */
class SessionBindingListener
	implements HttpSessionBindingListener {

 private ServletContext context;
 private PrintWriter out;
 //get custom data/time
 private DateFormat dateFormat =
	 new SimpleDateFormat("dd/MM/yyyy");
 String newDate = 
	 dateFormat.format(Calendar.getInstance().getTime());

 SessionBindingListener
	 (ServletContext servletContext, PrintWriter out) {
  this.context = servletContext;
  this.out = out;
 }

 @Override
 public void valueBound(HttpSessionBindingEvent event) {
  //Print massage on browser
  out.println("Session bound on [" 
	  + newDate + "] with <b>" + event.getName() + 
  "</b> to id : <I>" + event.getSession().getId() + "</I>");
  //Print massage on server console
  context.log("Session bound on [" 
	  + newDate + "] with <b>" + event.getName() + 
 "</b> to id : <I>" + event.getSession().getId() + "</I>");
 }

 @Override
 public void valueUnbound(HttpSessionBindingEvent event) {
  out.println("Session Unbound on [" 
	  + newDate + "] with <b>" + event.getName() +
 "</b> to id : <I>" + event.getSession().getId() + "</I>");
  context.log("Session Unbound on ["
  + newDate + "] with <b>" + event.getName() +
  "</b> to id : <I>" + event.getSession().getId() + "</I>");
 }
}
Output of Program
Previous Home Next