Sometimes, it is extremely useful to know the number of times a Web page is hit. This is especially so if a web site depends on usage statistics in order to determine peak access times. It is fairly simple to count the hits using a servlet. As we know, when a servlet is hit, the “public void doGet(HttpServletRequest request, HttpServletResponse response)” method of http servlet executes. This is exactly where we can update a variable that keeps count of number of web page (servlet) hits. The following code illustrates this:
import javax.servlet.*; import javax.servlet.http.*; public class PageHitCounter extends HttpServlet { private int numPageHits; public void init() { //here we can read in the previous value of numPageHits from //a file or a database, or .... //if there is no initial value, or we fail to read in the value, //initialize numPageHits } public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { //this method executes whenever the servlet is hit //increment numPageHits numPageHits++; } public void destroy() { //the servlet instance is about to be destroyed //write the value of numPageHits to a file, //or a database, or ... }
Note that by involving the init(), an destroy() method in the hit-counting process, we can provide persistence for the value of numPageHits.