Specifying Event Listener Classes
Specifying Event Listener Classes
import database.BookDBAO;
import javax.servlet.*;
import util.Counter;
import javax.ejb.*;
import javax.persistence.*;
public final class ContextListener
implements ServletContextListener {
private ServletContext context = null;
@PersistenceUnit
EntityManagerFactory emf;
public void contextInitialized(ServletContextEvent event) {
context = event.getServletContext();
try {
BookDBAO bookDB = new BookDBAO(emf);
context.setAttribute(
"bookDB", bookDB);
} catch (Exception ex) {
System.out.println(
"Couldn't create database: " + ex.getMessage());
}
Counter counter = new Counter();
context.setAttribute(
"hitCounter", counter);
counter = new Counter();
context.setAttribute(
"orderCounter", counter);
}
public void contextDestroyed(ServletContextEvent event) {
context = event.getServletContext();
BookDBAO bookDB = context.getAttribute(
"bookDB");
bookDB.remove();
context.removeAttribute(
"bookDB");
context.removeAttribute(
"hitCounter");
context.removeAttribute(
"orderCounter");
}
}
Specifying Event Listener Classes
You specify an event listener class using the listener element of the deployment descriptor.
Review
for information on how to specify the
ContextListener
listener class.
Servlet Life Cycle
The Java EE 5 Tutorial · September 2007
104