FileDocCategorySizeDatePackage
ShowCartServlet.javaAPI DocExample8168Tue Dec 12 18:59:40 GMT 2000None

ShowCartServlet

public class ShowCartServlet extends HttpServlet
An HTTP servlet that displays the contents of a customer's shopping cart at Duke's Bookstore. It responds to the GET and HEAD methods of the HTTP protocol. This servlet calls other servlets.

Fields Summary
Constructors Summary
Methods Summary
public voiddoGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)

        // Get the user's session and shopping cart
	HttpSession session = request.getSession(true);
	ShoppingCart cart = (ShoppingCart)session.getValue(session.getId());

        // If the user has no cart, create a new one
        if (cart == null) {
            cart = new ShoppingCart();
            session.putValue(session.getId(), cart);
	}

	// set content type header before accessing the Writer
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        //Print out the response
        out.println("<html>" +
                    "<head><title>Your Shopping Cart</title></head>" +

                    "<body  bgcolor=\"#ffffff\">" +
                    "<center> <hr> <br>  " +
                    "<h1>" +
                    "<font size=\"+3\" color=\"red\">Duke's </font>" +
                    "<font size=\"+3\" color=\"purple\">Bookstore</font>" +
                    "</h1>" +
                    "</center>" +
                    "<br>   <hr> <br>  ");

        /* Handle any pending deletes from the shopping cart and
           indicate the outcome as part of the response */
        String bookId =request.getParameter("Remove");
        if (bookId != null) {
            cart.remove(bookId);

            BookDBServlet database = (BookDBServlet)
                getServletConfig().getServletContext().getServlet("bookdb");
            BookDetails book = database.getBookDetails(bookId);
            
            out.println("<font color=\"#ff00000\" size=\"+2\">" +
                        "You just removed: <strong>" + book.getTitle() +
                        "</strong> <br>   <br>" +
                        "</font>");
            
        } else if (request.getParameter("Clear") != null) {
            cart.clear();
            
            out.println("<font color=\"#ff0000\" size=\"+2\"><strong>" +
                        "You just cleared your shopping cart!" +
                        "</strong> <br>  <br> </font>");
        }

        // Print a summary of the shopping cart
        int num = cart.getNumberOfItems();
        if (num > 0) {
            out.println("<font size=\"+2\">" +
                        "You have " + num + (num==1 ? " item" : " items") +
                        " in your shopping cart </h2>" +
                        "<font>");

            // Return the Shopping Cart Nice and Pretty
            out.println("<table>" +
                        "<tr>" +
                        "<th align=left>Quantity</TH>" +
                        "<th align=left>Title</TH>" +
                        "<th align=left>Price</TH>" +
                        "</tr>");
            
            Enumeration e = cart.getItems();
            while (e.hasMoreElements()) {
                ShoppingCartItem item = (ShoppingCartItem) e.nextElement();
                BookDetails bookDetails = (BookDetails) item.getItem();
                
                out.println("<tr>" +
                            "<td align=\"right\" bgcolor=\"#ffffff\">" +
                            item.getQuantity() +
                            "</td>" +

                            "<td bgcolor=\"#ffffaa\">" +
                            "<strong><a href=\"" +
                            response.encodeUrl("/servlet/bookdetails?bookId=" +
                                               bookDetails.getBookId()) +
                            "\">" + bookDetails.getTitle() + "</a></strong>" +
                            "</td>" +

                            "<td bgcolor=\"#ffffaa\" align=\"right\">" +
                            Cashier.format(bookDetails.getPrice()) +
                            "</td>" +

                            "<td bgcolor=\"#ffffaa\">" +
                            "<strong>" + "<a href=\"" +
                            response.encodeUrl("/servlet/showcart?Remove=" +
                                               bookDetails.getBookId())
                            + "\">Remove Item</a></strong>" +
                            "</td></tr>");
            }

            // Print the total at the bottom of the table
            Cashier cashier = new Cashier(cart);
            out.println("<tr><td colspan=\"5\" bgcolor=\"#ffffff\">" +
                        "<br></td></tr>" +

                        "<tr>" +
                        "<td colspan=\"2\" align=\"right\"" +
                        "bgcolor=\"#ffffff\">" +
                        "Subtotal:</td>" +
                        "<td bgcolor=\"#ffffaa\" align=\"right\">" +
                        cashier.format(cashier.getAmount()) + "</td>" +
                        "</td><td><br></td></tr>" +

                        "<tr>" +
                        "<td colspan=\"2\" align=\"right\"" +
                        "bgcolor=\"#ffffff\">" +
                        "CA Sales Tax:</td>" +
                        "<td bgcolor=\"#ffffaa\" align=\"right\">" +
                        cashier.format(cashier.getTax()) + "</td>" +
                        "</td><td><br></td></tr>" +

                        "<tr>" +
                        "<td colspan=\"2\" align=\"right\"" +
                        "bgcolor=\"ffffff\">" +
                        "<font color=\"ff0000\">" +
                        "<strong>Grand Total:</strong></font></td>" +
                        "<td bgcolor=\"ffffaa\" align=\"right\">" +
                        cashier.format(cashier.getTotal()) + "</td>" +
                        "</td><td><br></td></tr>" +
                        "</table>");
            
            // Where to go and what to do next
            out.println("<p>   <p><a href=\"" +
                        response.encodeUrl("/servlet/catalog") +
                        "\">See the Catalog</a>      " +
                        
                        "<a href=\"" +
                        response.encodeUrl("/servlet/cashier") +
                        "\">Check Out</a>      " +
                        
                        "<a href=\"" + 
                        response.encodeUrl("/servlet/showcart?Clear=clear") +
                        "\">Clear Cart</a>");
        } else {

            // Shopping cart is empty!
            out.println("<font size=\"+2\">" +
                        "There is nothing in your shopping cart.</font>" +
                        "<br>   <br>" +
                        "<center><a href=\""+
                        response.encodeUrl("/servlet/catalog") +
                        "\">Back to the Catalog</a> </center>");
        }

        out.println("</body> </html>");
        out.close();
    
public java.lang.StringgetServletInfo()

        return "The ShowCart servlet returns information about" +
               "the books that the user is in the process of ordering.";