The tut-install/javaeetutorial5/examples/web/bookstore1/src/java/com/sun/bookstore1/listeners/ContextListener class creates and removes the database access and counter objects used in the Duke's Bookstore application. The methods retrieve the web context object from ServletContextEvent and then store (and remove) the objects as servlet context attributes.
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");
}
}
This servlet example is from the Java EE Tutorial