Servlet Http Session All Listeners Project

Click here to download eclipse supported ZIP file




 

    
package com.cv.servlet.session.listener;

import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import javax.servlet.http.HttpSessionEvent;

import org.apache.log4j.Logger;

/**
 @author Chandra Vardhan
 *
 */
public class Dog implements HttpSessionBindingListener,
    HttpSessionActivationListener {

  private static final Logger LOGGER = Logger.getLogger(Dog.class);

  private String name;

  
  public String getName() {
    return name;
  }


  public void setName(String name) {
    this.name = name;
  }


  public Dog() {
  }

  
  public Dog(String name) {
    super();
    this.name = name;
  }


  @Override
  public void valueBound(HttpSessionBindingEvent httpSessionBindingEvent) {
    LOGGER.info("Entered into valueBound(--) of Dog class... ");
    Dog dog = (DoghttpSessionBindingEvent.getValue();
    if (dog != null) {
      LOGGER.info("Value of the Session attribute is : " + dog.getName());

    }
    LOGGER.info("Checking whether it is stored as session attribute : "
        + httpSessionBindingEvent.getSession().getAttribute("dog"));
    dog.setName("Tommy is the second pet name...");
    // httpSessionBindingEvent.getSession().setAttribute("dog", dog);

  }

  @Override
  public void valueUnbound(HttpSessionBindingEvent httpSessionBindingEvent) {
    LOGGER.info("Entered into valueUnbound(--) of Dog class... ");
    Dog dog = (DoghttpSessionBindingEvent.getValue();
    if (dog != null) {
      LOGGER.info("Value of the Session attribute is : " + dog.getName());

    }
  }

  
  
  @Override
  public void sessionWillPassivate(HttpSessionEvent se) {
    LOGGER.info("Entered into sessionWillPassivate(--) of Dog class... ");    
    }
  @Override
  public void sessionDidActivate(HttpSessionEvent se) {
    LOGGER.info("Entered into sessionDidActivate(--) of Dog class... ");
  }

   
}


 

    
package com.cv.servlet.session.listener;

import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionEvent;

import org.apache.log4j.Logger;
/**
 @author Chandra Vardhan
 *
 */
public class HttpSessionActivationListenerImpl implements HttpSessionActivationListener {
  
  private static final Logger LOGGER = Logger.getLogger(HttpSessionActivationListenerImpl.class);
  
  public HttpSessionActivationListenerImpl() {
    
  }

  @Override
  public void sessionWillPassivate(HttpSessionEvent se) {
    LOGGER.info("Entered into sessionWillPassivate(--) of HttpSessionActivationListenerImpl class... ");    
  }

  @Override
  public void sessionDidActivate(HttpSessionEvent se) {
    LOGGER.info("Entered into sessionDidActivate(--) of HttpSessionActivationListenerImpl class... ");
  }

}


 

    
/**
 
 */
package com.cv.servlet.session.listener;

import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;

import org.apache.log4j.Logger;

/**
 @author Chandra Vardhan
 *
 */
public class HttpSessionAttributeListenerImpl implements
    HttpSessionAttributeListener {
  
  private static final Logger LOGGER = Logger
      .getLogger(HttpSessionAttributeListenerImpl.class);

  /**
   
   */
  public HttpSessionAttributeListenerImpl() {

  }

  /*
   * (non-Javadoc)
   
   * @see
   * javax.servlet.http.HttpSessionAttributeListener#attributeAdded(javax.
   * servlet.http.HttpSessionBindingEvent)
   */
  @Override
  public void attributeAdded(HttpSessionBindingEvent httpSessionBindingEvent) {
    LOGGER.info("Entered into attributeAdded(-) of HttpSessionAttributeListenerImpl class... ");
    Dog dog = (DoghttpSessionBindingEvent.getValue();
    LOGGER.info("Value of the context attribute is : " + dog.getName());
    LOGGER.info("Checking whether it is stored as context attribute : "
        + httpSessionBindingEvent.getSession().getAttribute("dog"));
    dog.setName("Tommy is the second pet name...");
    httpSessionBindingEvent.getSession().setAttribute("dog", dog);
  }

  /*
   * (non-Javadoc)
   
   * @see
   * javax.servlet.http.HttpSessionAttributeListener#attributeRemoved(javax
   * .servlet.http.HttpSessionBindingEvent)
   */
  @Override
  public void attributeRemoved(HttpSessionBindingEvent httpSessionBindingEvent) {
    LOGGER.info("Entered into attributeRemoved(-) of HttpSessionAttributeListenerImpl class... ");
    Dog dog = (DoghttpSessionBindingEvent.getValue();
    if (dog != null) {
      LOGGER.info("Value of the context attribute is : " + dog.getName());
    }
  }

  /*
   * (non-Javadoc)
   
   * @see
   * javax.servlet.http.HttpSessionAttributeListener#attributeReplaced(javax
   * .servlet.http.HttpSessionBindingEvent)
   */
  @Override
  public void attributeReplaced(HttpSessionBindingEvent httpSessionBindingEvent) {
    LOGGER.info("Entered into attributeReplaced(-) of HttpSessionAttributeListenerImpl class... ");
    Dog dog = (DoghttpSessionBindingEvent.getValue();
    if (dog != null) {
      LOGGER.info("Value of the context attribute is : " + dog.getName());
      LOGGER.info("Checking whether it is stored as context attribute : "
          + httpSessionBindingEvent.getSession().getAttribute("dog"));
    }
  }

}


 

    
/**
 
 */
package com.cv.servlet.session.listener;

import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;

import org.apache.log4j.Logger;

/**
 @author Chandra Vardhan
 *
 */
public class HttpSessionBindingListenerImpl implements HttpSessionBindingListener {
  
  private static final Logger LOGGER = Logger.getLogger(HttpSessionBindingListenerImpl.class);
  /**
   
   */
  public HttpSessionBindingListenerImpl() {
    
  }

  /* (non-Javadoc)
   * @see javax.servlet.http.HttpSessionBindingListener#valueBound(javax.servlet.http.HttpSessionBindingEvent)
   */
  @Override
  public void valueBound(HttpSessionBindingEvent event) {
    LOGGER.info("Entered into valueBound(--) of HttpSessionBindingListenerImpl class... ");    
  }

  /* (non-Javadoc)
   * @see javax.servlet.http.HttpSessionBindingListener#valueUnbound(javax.servlet.http.HttpSessionBindingEvent)
   */
  @Override
  public void valueUnbound(HttpSessionBindingEvent event) {
    LOGGER.info("Entered into valueUnbound(--) of HttpSessionBindingListenerImpl class... ");    
  }

}


 

    
package com.cv.servlet.session.listener;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

import org.apache.log4j.Logger;
/**
 @author Chandra Vardhan
 *
 */
public class HttpSessionListenerImpl implements HttpSessionListener  {
  
  private static final Logger LOGGER = Logger.getLogger(HttpSessionListenerImpl.class);

  static private int activeSessions;
  
  public static int getActiveSessions() {
    return activeSessions;
  }

  public HttpSessionListenerImpl() {    
  }

  @Override
  public void sessionCreated(HttpSessionEvent se) {
    LOGGER.info("Entered into sessionCreated(--) of HttpSessionListenerImpl class... ");      
    ++activeSessions;
    LOGGER.info("No.of active sessions are available is : "+activeSessions);
  }

  @Override
  public void sessionDestroyed(HttpSessionEvent se) {
    LOGGER.info("Entered into sessionDestroyed(--) of HttpSessionListenerImpl class... ");      
    --activeSessions;
    LOGGER.info("No.of active sessions are available is : "+activeSessions);
  }

}


 

    
package com.cv.servlet.session.listener;


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;

import org.apache.log4j.Logger;

/**
 * Servlet implementation class HttpSessionListenerServlet
 
 @author Chandra Vardhan
 *
 */
public class HttpSessionListenerServlet extends HttpServlet {
  
  private static final Logger LOGGER = Logger.getLogger(HttpSessionListenerServlet.class);
  
  private static final long serialVersionUID = 1L;
       
    /**
     @see HttpServlet#HttpServlet()
     */
    public HttpSessionListenerServlet() {
        super();
    }

  /**
   @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException {
    LOGGER.info("Entered into doGet(--) of HttpSessionListenerServlet class... ");    
    
    response.setContentType("text/html");
    
    
    PrintWriter out = response.getWriter();
    // setting “dog” attribute in request object    
    Dog dog = new DoggetServletContext().getInitParameter("contextParam"));      
    out.print("My Dog's first name is : "+ dog.getName());
    HttpSession session = request.getSession();
    session.setAttribute("dog", dog);    
    out.print("<br/>");
    out.print("<br/>");
    Dog dogAttribute = (Dog)session.getAttribute("dog");
    out.print("My Dog's second name is : "+ dogAttribute.getName());
    out.print("<br/>");
    out.print("<br/>");
    dog.setName("Bubby is third pet name...");
    // replacing “dog” attribute in request object
    session.setAttribute("dog", dog);
    // remove “dog” attribute from request object.
    Dog dogAttribute2 = (Dog)session.getAttribute("dog");  
    out.print("My Dog's third name is : "+ dogAttribute2.getName());
    session.removeAttribute("dog");
    session.invalidate();

  }

  /**
   @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse responsethrows ServletException, IOException {
    LOGGER.info("Entered into doPost(--) of HttpSessionListenerServlet class... ");        
    doGet(request, response);
  }

}



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Beer title here</title>
</head>
<body>
<form action="HttpSessionListenerServlet" method="post">
<input type="submit" value="Click here to continue...">
</form>
</body>
</html>



#By default enabling Console appender
# Root logger option
log4j.rootLogger=INFO, stdout

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-5p [%c]:%L -->> %m%n

# Redirect log messages to a log file
#log4j.appender.file=org.apache.log4j.RollingFileAppender
#log4j.appender.file.File=C:\\servlet-application.log
#log4j.appender.file.MaxFileSize=5MB
#log4j.appender.file.MaxBackupIndex=10
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n




<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <artifactId>HttpSessionAllListeners</artifactId> <version>1.0</version> <packaging>war</packaging> <properties> <log4j.version>1.2.16</log4j.version> <java.version>1.8</java.version> </properties> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <warSourceDirectory>WebContent</warSourceDirectory> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> </dependencies> <groupId>com.cv.servlet.session.listener</groupId> </project>




 
<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <context-param> <param-name>contextParam</param-name> <param-value>JokeyIsTheFirstPetName</param-value> </context-param> <servlet> <servlet-name>HttpSessionListenerServlet</servlet-name> <servlet-class>com.cv.servlet.session.listener.HttpSessionListenerServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HttpSessionListenerServlet</servlet-name> <url-pattern>/HttpSessionListenerServlet</url-pattern> </servlet-mapping> <listener> <listener-class>com.cv.servlet.session.listener.HttpSessionActivationListenerImpl</listener-class> </listener> <listener> <listener-class>com.cv.servlet.session.listener.HttpSessionAttributeListenerImpl</listener-class> </listener> <listener> <listener-class>com.cv.servlet.session.listener.HttpSessionBindingListenerImpl</listener-class> </listener> <listener> <listener-class>com.cv.servlet.session.listener.HttpSessionListenerImpl</listener-class> </listener> <welcome-file-list> <welcome-file>input.html</welcome-file> </welcome-file-list> </web-app>


No comments:

Post a Comment