ONJava.com -- The Independent Source for Enterprise Java
oreilly.comSafari Books Online.Conferences.

advertisement

AddThis Social Bookmark Button

Servlet App Event Listeners
Pages: 1, 2, 3, 4, 5, 6, 7

Writing a Simple Servlet Context Application Lifecycle Event Listener

When a web application is deployed a servlet context object, ServletContext, is created and associated with the web application. There is a one-to-one relationship between a servlet context object and the web application. All resources within the web application, such as servlets and JSPs, can retrieve any information stored in the servlet context.



As a web application programmer, you may want to initialize objects and place them in the servlet context when it is created and destroy the objects when the servlet context is destroyed. For example, you may decide to create a connection to a database when the servlet context is created and close the connection when the servlet context is destroyed.

To write an application lifecycle event listener that executes when the servlet context is created and destroyed, write a Java class that implements the javax.Servlet.ServletContextListener class. This class has two methods with the following signatures (taken from the JavaDocs):

void contextDestroyed (ServletContextEvent sce)
   Notification that the Servlet context is about to be shut down.

void contextInitialized (ServletContextEvent sce)
   Notification that the Web Application is ready to process requests.

Let's write a simple application lifecycle event listener that writes a message to the console of the server when the web application is ready to accept requests and when it is going to be removed. Listing 1 shows the code for a simple application event listener class.


Listing 1: An application lifecycle event listener that outputs messages to the console when the web application is ready to service requests and when it is going to be removed. (MyContextListener.java)

package com.listeners;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributesListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public final class MyContextListener
    implements ServletContextListener {

  private ServletContext context = null;

  public MyContextListener() {}

  //This method is invoked when the Web Application
  //has been removed and is no longer able to accept
  //requests

  public void contextDestroyed(ServletContextEvent event)
  {

    //Output a simple message to the server's console
    System.out.println("The Simple Web App. Has Been Removed");
    this.context = null;

  }


  //This method is invoked when the Web Application
  //is ready to service requests

  public void contextInitialized(ServletContextEvent event)
  {
    this.context = event.getServletContext();

    //Output a simple message to the server's console
    System.out.println("The Simple Web App. Is Ready");

  }
}


Pages: 1, 2, 3, 4, 5, 6, 7

Next Pagearrow