// 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("<html>" +
"<head><title> Book Catalog </title></head>");
// 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("<p><h3>" +
"<font color=\"#ff0000\">" +
"You just added <i>" + book.getTitle() + "</i> "+
"to your shopping cart.</font></h3>");
}
//Give the option of checking cart or checking out if cart not empty
if (cart.getNumberOfItems() > 0) {
out.println("<p><strong><a href=\"" +
response.encodeURL("/bookstore/showcart") +
"\"> Check Shopping Cart</a> " +
"<a href=\"" +
response.encodeURL("/bookstore/cashier") +
"\"> Buy Your Books</a>" +
"</p></strong>");
}
// Always prompt the user to buy more -- get and show the catalog
out.println("<br> " +
"<h3>Please choose from our selections:</h3>" +
"<center> <table>");
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("<tr>" +
"<td bgcolor=\"#ffffaa\">" +
"<a href=\"" +
response.encodeURL("/bookstore/bookdetails?bookId=" + bookId) +
"\"> <strong>" + book.getTitle() +
" </strong></a></td>" +
"<td bgcolor=\"#ffffaa\" rowspan=2>" +
Currency.format(book.getPrice(), request.getLocale()) +
" </td>" +
"<td bgcolor=\"#ffffaa\" rowspan=2>" +
"<a href=\"" +
response.encodeURL("/bookstore/catalog?Add=" + bookId)
+ "\"> Add to Cart </a></td></tr>" +
"<tr>" +
"<td bgcolor=\"#ffffff\">" +
" by <em> " + book.getFirstName() +
" " + book.getSurname() + "</em></td></tr>");
}
out.println("</table></center></body></html>");
out.close();