import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

/**
 * The SessionInfoServlet demonstrates the session management
 * mechanisms built into the servlet API.
 *
 * @author Dustin R. Callaway
 * @version 1.0, 06/06/98
 */
public class SessionInfoServlet extends HttpServlet
{
  /**
   * init method is called when servlet is first loaded.
   */
  public void init(ServletConfig config) throws ServletException
  {
    super.init(config); //pass ServletConfig to parent
  }


  /**
   * service method builds an HTML document containing session
   * information and returns it to the client.
   */
  public void service(HttpServletRequest request,
    HttpServletResponse response) throws ServletException,
    IOException
  {
    //get current session or, if necessary, create a new one
    HttpSession mySession = request.getSession(true);

    //MIME type to return is HTML
    response.setContentType("text/html");

    //get a handle to the output stream
    PrintWriter out = response.getWriter();

    //generate HTML document
    out.println("<HTML>");
    out.println("<HEAD>");
    out.println("<TITLE>Session Info Servlet</TITLE>");
    out.println("</HEAD>");
    out.println("<BODY>");
    out.println("<h3>Session Information</h3>");
    out.println("New Session: " + mySession.isNew());
    out.println("<br>Session ID: " + mySession.getId());
        out.println("<br>Session ID fra request objektet: " + request.getRequestedSessionId());
    out.println("<br>Session Creation Time: " +
      mySession.getCreationTime());
    out.println("<br>Session Last Accessed Time: " +
      mySession.getLastAccessedTime());

    out.println("<h3>Request Information</h3>");
    out.println("Session ID from Request: " +
      request.getRequestedSessionId());
    out.println("<br>Session ID via Cookie: " +
      request.isRequestedSessionIdFromCookie());
    out.println("<br>Session ID via rewritten URL: " +
      request.isRequestedSessionIdFromUrl());
    out.println("<br>Valid Session ID: " +
      request.isRequestedSessionIdValid());

    out.println("</BODY></HTML>");

    out.close(); //close output stream
  }


  /**
   * getServletInfo returns a brief description of this servlet
   */
  public String getServletInfo()
  {
    return "Servlet returns session information.";
  }
}