package examples.servlets; /* * @(#)SessionServlet.java 1.21 97/05/22 * * Copyright (c) 1996-1997 Sun Microsystems, Inc. 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 to track the number of times that a client has visited the servlet. * Using session tracking provides an alternative method for tracking * a client and storing client specific data, when the client browser * does not support cookies. This is achieved by encoding a tracking id * into the URLs linked in the pages that are returned to the client. * *

Ensure that session tracking via URLRewriting is turned on in your * weblogic.properties file, if you wish to test this example with cookies * turned off in your browser. * * @author Adapted from the JSDK2.0 by BEA Systems, Inc. */ 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

"); // Retrieve the count value from the session 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(""); } public String getServletInfo() { return "A simple servlet"; } }