//  CookieCounter
//  This servlet will keep track of the number
//  of times you visit it.  The counter is stored
//  within a cookie.

package pjberkel;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class CookieCounter extends HttpServlet {

  public void doGet(HttpServletRequest req, HttpServletResponse res)
                               throws ServletException, IOException {
    	String name, value = null;
    	Cookie cookie;
    	int counter;

    	res.setContentType("text/html");

	//  Try to extract the counter cookie (if one exists)
	Cookie[] cookies = req.getCookies();
	for (int i=0; i<cookies.length; i++) {
		cookie = cookies[i];
		name = cookie.getName();
		if (name.equals("counter"))
			value = cookie.getValue();
	}

	//  If possible, parse the counter value
	//  Otherwise, start over at 0.
	if (value != null)
		counter = Integer.parseInt (value);
	else counter = 0;

	//  Increment the counter
	counter++;

	//  Create a new counter cookie
	//  Cookie will exist for one year
	cookie = new Cookie ("counter", Integer.toString(counter));
	cookie.setMaxAge (60*60*24*365);
	res.addCookie (cookie);

	//  Output number of visits
	PrintWriter out = res.getWriter();
	out.println ("<HTML><BODY>");
    	out.println ("<H1>Number of visits:  "+counter);
    	out.println ("</H1>");
    	out.println ("</BODY></HTML>");
    	out.close();
  }
}


