Home arrow Java & J2EE arrow Page 8 - Overview of Java Web Technologies, Part 1

Listening to Application Events - Java

Today, Budi walks us through a refresher and brief overview of server JSP programming. Today's portion covers Servlet technologies, including servlets and Tomcat. This excerpt comes from chapter one of JavaServer Faces Programming, by Budi Kurniawan (McGraw-Hill/Osborne, ISBN 0-07-222983-7, 2004).

  1. Overview of Java Web Technologies, Part 1
  2. Methods
  3. Creating a Servlet Directory Structure
  4. Reviewing Deployment Descriptors
  5. Servlet Mapping
  6. Defining Context Parameters
  7. Retrieving Context Parameters
  8. Listening to Application Events
  9. Packaging and Deploying a Web Application
By: McGraw-Hill/Osborne
Rating: starstarstarstarstar / 25
March 01, 2004

print this article



The Servlet 2.3 and 2.4 specifications allow you to write listener classes for servlet contexts, session objects, and request objects (only in Servlet 2.4). In this section, we’re interested in the listener classes for a servlet context.

The javax.servlet package provides two listener interfaces that support event notifications for state changes in the ServletContext object: the ServletContext Listener interface and the ServletContextAttributesListener interface. We’ll examine the ServletContextListener interface here, because it’s directly
related to writing JSF applications.

You use the ServletContextListener interface to listen to the ServletContext lifecycle events. ServletContextListener provides two methods:

  • The contextInitialized method is called when the Web application is ready to service requests. The method is called automatically by the servlet container when its own initialization process is finished. You can write code that needs to be executed when the application initializes, such as loading a JDBC driver, creating a database Connection object, or assigning initialization values to global variables.

  • The contextDestroyed method is invoked when the servlet context is about to be shut down. You can use this method to write code that needs to run when the application shuts down, such as closing a database connection or writing to the log.

The signatures of contextInitialized and contextDestroyed are as follows:

public void contextInitialized(ServletContextEvent sce)
public void contextDestroyed(ServletContextEvent sce)

As an example, the code in Listing 4 is a listener class called ApplicationListener. It listens to the lifecycle events of the ServletContext. It simply prints the string “Application initialized” when the ServletContext is initialized and “Application destroyed” when the ServletContext is destroyed.

Listing 4 The ApplicationListener Class

import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
public class ApplicationListener implements ServletContextListener {
  public void contextInitialized(ServletContextEvent cse) {
    System.out.println("Application initialized");
  public void contextDestroyed(ServletContextEvent cse) {
    System.out.println("Application shut down");

For the ApplicationListener class to work, you must register it in the deployment descriptor, such as the one in Listing 5.

Listing 5 The Deployment Descriptor for the ApplicationListener Class

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

Now, every time your application starts (the first time a servlet or JSP page is invoked), you will see the string “Application initialized” at the console. And before your application is taken out of service, it will display “Application shut down.”

Buy this book now!Remember: This is part one of the first chapter of JavaServer Faces Programming, by Budi Kurniawan (McGraw-Hill/Osborne, ISBN 0-07-222983). Stay tuned for part 2 of "Overviews of Java Web Technologies," where we learn about JSP, JavaBeans, and Model 2. 
Buy this book!

>>> More Java & J2EE Articles          >>> More By McGraw-Hill/Osborne

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort


- More Java Bugs Lead to More Attacks
- Oracle's Java One Brings News, Surprises
- Oracle Patches Java Runtime Environment
- Apple Syncs Java Update with Oracle
- Spring 3.1 Java Development Framework Compat...
- Jelastic Java PaaS Availability and Pricing ...
- NetBeans 7.1 Released, Supports JavaFX 2
- SolarWinds Releases Newest Version of Java M...
- Free Monitoring Tool for Java Apps on Heroku
- Heroku Adds JCloud Platform Support, Java 7 ...
- Java SE 8 Speculation in Full Swing
- Java SE 7 Now Available
- New JVM Language and Java Reporting Tool
- Java 7 Release Update and New Eclipse Toolkit
- The Best Java Netbeans IDE Plugins

Developer Shed Affiliates


Dev Shed Tutorial Topics: