FileDocCategorySizeDatePackage
ShowCartServlet.javaAPI DocExample7705Tue Dec 12 18:59:38 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
private BookDB
bookDB
Constructors Summary
Methods Summary
public voiddestroy()

               bookDB = null;
         
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.getAttribute("examples.bookstore.cart");

        // If the user has no cart, create a new one
        if (cart == null) {
            cart = new ShoppingCart();
            session.setAttribute("examples.bookstore.cart", 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>");

        // Get the dispatcher; it gets the banner to the user
        RequestDispatcher dispatcher =
               getServletContext().getRequestDispatcher(
                  "/banner");
                                       
            if (dispatcher != null)
               dispatcher.include(request, response);

        /* 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);
                  
            	BookDetails book = bookDB.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" +
                        "</font><br> ");

            // 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>");
            
            Iterator i = cart.getItems().iterator();
            while (i.hasNext()) {
                ShoppingCartItem item = (ShoppingCartItem) i.next();
                BookDetails bookDetails = (BookDetails) item.getItem();
                
                out.println("<tr>" +
                            "<td align=\"right\" bgcolor=\"#ffffff\">" +
                            item.getQuantity() +
                            "</td>" +

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

                            "<td bgcolor=\"#ffffaa\" align=\"right\">" +
                            Currency.format(bookDetails.getPrice(), request.getLocale()) +
                            "</td>" +

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

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

                        "<tr>" +
                        "<td colspan=\"2\" align=\"right\"" +
                        "bgcolor=\"#ffffff\">" +
                        "Total:</td>" +
                        "<td bgcolor=\"#ffffaa\" align=\"right\">" +
                        Currency.format(cart.getTotal(), request.getLocale()) + "</td>" +
                        "</td><td><br></td></tr></table>");

           
            // Where to go and what to do next
            out.println("<p>   <p><strong><a href=\"" +
                        response.encodeURL("/bookstore/catalog") +
                        "\">Continue Shopping</a>      " +
                        
                        "<a href=\"" +
                        response.encodeURL("/bookstore/cashier") +
                        "\">Check Out</a>      " +
                        
                        "<a href=\"" + 
                        response.encodeURL("/bookstore/showcart?Clear=clear") +
                        "\">Clear Cart</a></strong>");
        } 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("/bookstore/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.";
    
public voidinit()

           bookDB =
               (BookDB)getServletContext().getAttribute("examples.bookstore.database");
   
           if (bookDB == null) {
           		bookDB = BookDB.instance();
                     getServletContext().setAttribute("examples.bookstore.database", bookDB);
           }