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.