/* * * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or * without modification, are permitted provided that the following * conditions are met: * * - Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * - Redistribution in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials * provided with the distribution. * * Neither the name of Sun Microsystems, Inc. or the names of * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * This software is provided "AS IS," without a warranty of any * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY * DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT OF OR * RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE OR * ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF * THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * * You acknowledge that this software is not designed, licensed or * intended for use in the design, construction, operation or * maintenance of any nuclear facility. * */ package filters; import java.io.*; import java.sql.Timestamp; import java.util.Iterator; import javax.servlet.*; import javax.servlet.http.*; import database.BookDetails; import cart.*; import util.*; public final class OrderFilter implements Filter { private FilterConfig filterConfig = null; public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; } public void destroy() { this.filterConfig = null; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (filterConfig == null) return; // Render the generic servlet request properties StringWriter sw = new StringWriter(); PrintWriter writer = new PrintWriter(sw); ServletContext context = filterConfig.getServletContext(); Counter counter = (Counter)context.getAttribute("orderCounter"); HttpServletRequest hsr = (HttpServletRequest)request; HttpSession session = hsr.getSession(); ShoppingCart cart = (ShoppingCart)session.getAttribute("cart"); Currency c = (Currency)session.getAttribute("currency"); c.setAmount(cart.getTotal()); writer.println(); writer.println("======================================================="); writer.println("The total number of orders is: " + counter.incCounter()); writer.println("This order Received at " + (new Timestamp(System.currentTimeMillis()))); writer.println(); writer.print("Purchased by: " + request.getParameter("cardname")); writer.println(); writer.print("Total: " + c.getFormat()); writer.println(); int num = cart.getNumberOfItems(); if (num > 0) { Iterator i = cart.getItems().iterator(); while (i.hasNext()) { ShoppingCartItem item = (ShoppingCartItem) i.next(); BookDetails bookDetails = (BookDetails) item.getItem(); writer.print("ISBN: " + bookDetails.getBookId()); writer.print(" Title: " + bookDetails.getTitle()); writer.print(" Quantity: " + item.getQuantity()); writer.println(); } } writer.println("======================================================="); // Log the resulting string writer.flush(); context.log(sw.getBuffer().toString()); chain.doFilter(request, response); } public String toString() { if (filterConfig == null) return ("OrderFilter()"); StringBuffer sb = new StringBuffer("OrderFilter("); sb.append(filterConfig); sb.append(")"); return (sb.toString()); } }