/* * @(#)SessionServlet.java 1.21 97/05/22 * * Copyright (c) 1996, 2004, Oracle. All rights reserved. * * This software is the confidential and proprietary information of Sun * Microsystems, Inc. ("Confidential Information"). You shall not * disclose such Confidential Information and shall use it only in * accordance with the terms of the license agreement you entered into * with Sun. * * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING * THIS SOFTWARE OR ITS DERIVATIVES. * * CopyrightVersion 1.0 */ import java.io.*; import java.util.Enumeration; import javax.servlet.*; import javax.servlet.http.*; /** * This is a simple example of an HTTP Servlet that uses the HttpSession * class *

* Note that in order to gaurentee that session response headers are * set correctly, the session must be retrieved before any output is * sent to the client. */ public class SessionServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { //Get the session object HttpSession session = req.getSession(true); // set content type and other response header fields first res.setContentType("text/html"); // then write the data of the response PrintWriter out = res.getWriter(); out.println(" " + "SessionServlet Output " + ""); out.println("

SessionServlet Output

"); Integer ival = (Integer) session.getAttribute("sessiontest.counter"); if (ival == null) { ival = new Integer(1); } else { ival = new Integer(ival.intValue() + 1); } session.setAttribute("sessiontest.counter", ival); out.println("You have hit this page " + ival + " times.

"); out.println("Click here"); out.println(" to ensure that session tracking is working even " + "if cookies aren't supported.
"); out.println("Note that by default URL rewriting is not enabled" + "due to it's expensive overhead"); out.println("

"); out.println("

Request and Session Data:

"); out.println("Session ID in Request: " + req.getRequestedSessionId()); out.println("
Session ID in Request from Cookie: " + req.isRequestedSessionIdFromCookie()); out.println("
Session ID in Request from URL: " + req.isRequestedSessionIdFromURL()); out.println("
Valid Session ID: " + req.isRequestedSessionIdValid()); out.println("

Session Data:

"); out.println("New Session: " + session.isNew()); out.println("
Session ID: " + session.getId()); out.println("
Creation Time: " + session.getCreationTime()); out.println("
Last Accessed Time: " + session.getLastAccessedTime()); out.println("

Servlet Context Data:

"); ServletContext context = session.getServletContext(); for (Enumeration e = context.getAttributeNames(); e.hasMoreElements();) { out.println("Context Attribute: " + (String) e.nextElement() + "
"); } out.println(""); out.close(); } public String getServletInfo() { return "A simple servlet"; } }