SessCounter.java: Count Session Access
package elug.servlets;
import java.io.PrintWriter;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.*;
import javax.servlet.http.*;
public class SessCounter extends HttpServlet
{
private static final String title = "Servlet Session Counter";
private static final String textname = "text";
private static final String countname = "counter";
private void showPage (HttpServletRequest request,
HttpServletResponse response,
HttpSession session)
throws ServletException, IOException
{
response.setContentType ("text/html");
PrintWriter out = response.getWriter ();
out.println ("<html>");
out.println ("<head>");
out.println ("<title>" + title + "</title>");
out.println ("</head>");
out.println ("<body>");
out.println ("<h1>" + title + "</h1>");
String text = (String) session.getAttribute (textname);
Integer count = (Integer) session.getAttribute (countname);
if (count == null)
count = new Integer (0);
out.println ("Session = <code>" + session.getId () + "</code>");
out.println ("<p>");
String url = response.encodeURL (request.getRequestURI ());
out.print ("<form method=post action=");
out.print (url);
out.println (">");
out.print ("<input type=text name=");
out.print (textname);
if (text != null)
{
out.print (" value=\"");
out.print (text);
out.print ("\"");
}
out.println (">");
out.println ("<input type=submit name=submit value=\"Save Text\">");
out.println ("</form>");
out.println ("<p>");
out.println ("Count = <code>" + count + "</code>");
out.println ("<p>");
out.print ("<a href=");
out.print (url);
out.println (">Nochmal</a>");
out.println ("</body>");
out.println ("</html>");
}
public void doGet (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
HttpSession session = request.getSession ();
showPage (request, response, session);
}
public void doPost (HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
HttpSession session = request.getSession ();
String text = request.getParameter (textname);
if (text != null)
session.setAttribute (textname, text);
Integer count = (Integer) session.getAttribute (countname);
if (count == null)
count = new Integer (1);
else
count = new Integer (count.intValue () + 1);
session.setAttribute (countname, count);
showPage (request, response, session);
}
}