// ShowSession.java servlet -- example use of session methods and info // Chen Li, ICS 185 Winter 2005 // Minor updates (to use Java 5.0 features) by N. Jacobson for ICS185 Spring 2005 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; public class ShowItems extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); ArrayList previousItems = (ArrayList)session.getAttribute("previousItems"); if (previousItems == null) { previousItems = new ArrayList(); session.setAttribute("previousItems", previousItems); } String newItem = request.getParameter("newItem"); response.setContentType("text/html"); PrintWriter out = response.getWriter(); String docType = "\n"; out.println(docType + "\n" + "Items Purchased\n" + "\n" + "

Items Purchased

"); // Show ShowSessionInfo servlet # of accesses info it gathered // (example of how to get info from another thread that may be running) Object accessCount = session.getAttribute("accessCount"); if (accessCount == null) out.println("

Number of previous accesses unavailable at this time.

"); else out.println("

Note: Number of previous accesses is " + (Integer)accessCount + "

"); synchronized(previousItems) { if (newItem != null) { previousItems.add(newItem); } if (previousItems.size() == 0) { out.println("No items"); } else { out.println("
    "); for(int i = 0; i < previousItems.size(); i++) { out.println("
  • " + previousItems.get(i)); } out.println("
"); } } out.println(""); } }