/** * Simple Shopping Cart V1 * * Session tracking with hidden form field. Note that the simplified * session number generation here is not safe (easy to guess) or * thread-safe. */ import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class Cart1 extends HttpServlet { int sss; HashMap cart; /** * Create a form */ String createForm( String sess ) { String form=""; String method = "method=get"; String action = "action=Cart1"; String e1 = "Item:
"; String e2 = ""; String e3 = "
"; String e4 = "
"; form += "
"; form += e1 + e2 + e3 + e4; form += "
"; return form; } /** * Create a list of items already bought */ String createList( String sess ) { Vector v = (Vector) cart.get(sess); String list = ""; for( int i=0 ; i < v.size() ; ++i ) if( v.elementAt(i) != null ) list += (String) v.elementAt(i) + "
"; return list; } /** init() */ public void init() throws ServletException { sss = 0; cart = new HashMap(); } /** doGet() */ public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { String sess; if( request.getParameter("sess") == null ) { sess = "" + sss++; cart.put( sess, new Vector() ); } else sess = request.getParameter("sess"); if( request.getParameter("buy") != null ) ((Vector) cart.get(sess)).add( request.getParameter("item") ); // doc type, html, title, body response.setContentType("text/html"); String doc = "\n"; doc += "Simple Shopping Cart\n"; if( request.getParameter("done") != null ) doc += createList(sess); else doc += createForm(sess); // closing body and html. set content type to be html and write out doc += ""; PrintWriter out = response.getWriter(); out.println( doc ); } }