');
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
The Servlet 2.3 specification allows for more interaction between the web application programmer and ServletContext. The programmer can now write an application lifecycle event listener that executes when the attributes of the ServletContext object have been modified.
If you want to execute some code when the attributes of the ServletContext object has been modified, write a Java class that implements the javax.Servlet.ServletContextAttributesListener interface. This interface defines three methods with the following signatures (this is taken from the JavaDocs):
');
- void attributeAdded (ServletContextAttributeEvent scab) Notification that a new attribute was added to the servlet context.
- void attributeRemoved (ServletContextAttributeEvent scab) Notification that an existing attribute has been removed from the servlet context.
- void attributeReplaced (ServletContextAttributeEvent scab) Notification that an attribute on the servlet context has been replaced.
Here's a sample class which implements both ServletContextListener and ServletContextAttributesListener :
import javax.servlet.ServletContext;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ServletContextAttribListener
implements ServletContextAttributeListener,ServletContextListener {
private ServletContext context = null;
//This method is invoked when an attribute
//is added to the ServletContext object
public void attributeAdded (ServletContextAttributeEvent scab)
{
System.out.println("An attribute was added to the " +
"ServletContext object");
}
//This method is invoked when an attribute
//is removed from the ServletContext object
public void attributeRemoved (ServletContextAttributeEvent scab)
{
System.out.println("An attribute was removed from " +
"the ServletContext object");
}
//This method is invoked when an attribute
//is replaced in the ServletContext object
public void attributeReplaced (ServletContextAttributeEvent scab)
{
System.out.println("An attribute was replaced in the " +
"ServletContext object");
}
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");
}
}
Commenti
Posta un commento