/* Copyright (c) 1998 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.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; import database.*; import cart.*; /** * This is a simple example of an HTTP Servlet. It responds to the GET * method of the HTTP protocol. */ public class CatalogServlet extends HttpServlet { private BookDB bookDB; public void init() throws ServletException { bookDB = (BookDB)getServletContext().getAttribute("examples.bookstore.database"); if (bookDB == null) { bookDB = BookDB.instance(); getServletContext().setAttribute("examples.bookstore.database", bookDB); } } public void destroy() { bookDB = null; } public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 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(); // then write the data of the response out.println("" + " Book Catalog "); // Get the dispatcher; it gets the banner to the user RequestDispatcher dispatcher = getServletContext().getRequestDispatcher( "/banner"); if (dispatcher != null) dispatcher.include(request, response); //Information on the books is from the database through its front end // Additions to the shopping cart String bookId = request.getParameter("Add"); if (bookId != null) { BookDetails book = bookDB.getBookDetails(bookId); cart.add(bookId, book); out.println("

" + "" + "You just added " + book.getTitle() + " "+ "to your shopping cart.

"); } //Give the option of checking cart or checking out if cart not empty if (cart.getNumberOfItems() > 0) { out.println("

Check Shopping Cart   " + " Buy Your Books" + "

"); } // Always prompt the user to buy more -- get and show the catalog out.println("
 " + "

Please choose from our selections:

" + "
"); Collection c = bookDB.getBooks(); Iterator i = c.iterator(); while (i.hasNext()) { BookDetails book = (BookDetails)i.next(); bookId = book.getBookId(); //Print out info on each book in its own two rows out.println("" + "" + "" + "" + "" + ""); } out.println("
" + " " + book.getTitle() + "  " + Currency.format(book.getPrice(), request.getLocale()) + "  " + "   Add to Cart  
" + "    by " + book.getFirstName() + " " + book.getSurname() + "
"); out.close(); } public String getServletInfo() { return "The Catalog servlet adds books to the user's " + "shopping cart and prints the catalog."; } }