Where it Counts Listing 3. Our page counter application contains two classes. The first, AppAttributeEventDemo, is a listener class. ![]() import javax.servlet.ServletContext; import javax.servlet.ServletContextListener; import javax.servlet.ServletContextEvent; import javax.servlet. ServletContextAttributeListener; import javax.servlet. ServletContextAttributeEvent; import java.io.*; public class AppAttributeEventDemo implements ServletContextListener, ServletContextAttributeListener { int counter; // if you are working on a Linux/UNIX machine, // change the path accordingly String counterFilePath = "C:\\counter.txt"; public void contextInitialized( ServletContextEvent cse) { try { BufferedReader reader = new BufferedReader(new FileReader( counterFilePath)); counter = Integer.parseInt( reader.readLine() ); reader.close(); System.out.println("Reading" + counter); } catch (Exception e) { System.out.println(e.toString()); } ServletContext servletContext = cse.getServletContext(); servletContext.setAttribute("pageCounter", Integer.toString(counter)); System.out.println( "Application initialized"); } public void contextDestroyed( |