User: janaudy 
  Date: 00/05/22 10:05:34

  Added:       webstore/src/org/jboss/zol/webstore/servlets
                        DisplayCategoryServlet.java
  Log:
  
  
  Revision  Changes    Path
  1.1                  
zola/webstore/src/org/jboss/zol/webstore/servlets/DisplayCategoryServlet.java
  
  Index: DisplayCategoryServlet.java
  ===================================================================
  package org.jboss.zol.webstore.servlets;
  
  /**
   * This servlet looks up the different products in the database
   * that belong to a category
   *
   * @author Thierry Janaudy
   * @date May 17th, 2000
   */
   
  import javax.servlet.http.*;
  import javax.servlet.*;
  
  import javax.naming.*;
  
  import javax.ejb.FinderException;
  import javax.ejb.ObjectNotFoundException;
  
  import java.util.Collection;
  import java.util.LinkedList;
  import java.util.Iterator;
  
  import org.jboss.zol.webstore.ejbs.product.ProductEntityHome;
  import org.jboss.zol.webstore.ejbs.product.ProductEntity;
  import org.jboss.zol.webstore.ejbs.product.ProductEntityPK;
  
  import org.jboss.zol.webstore.beans.ProductBean;
  
  import org.jboss.zol.webstore.common.MyNarrow;
  
  public final class DisplayCategoryServlet extends ZOLGenericServlet {
    /**
     * Method init, called when the servlet is initialized
     */
    public void init(ServletConfig sc) throws ServletException {
      super.init(sc);
    }
    
      /**
     * doPost
     * @param req
     * @param res
     */
    protected void doGet(HttpServletRequest req, HttpServletResponse res)
      throws java.io.IOException {
      HttpSession session = req.getSession(true);
      String cat = req.getParameter("cat");
      System.err.println("Parameter is:"+cat);
      // Q & D, should be removed so that the db has the right names for the category.
      if (cat.equals("flower"))
        cat = "Flower";
      else
      if (cat.equals("ejbserver"))
        cat = "EJB Server";
      else
      if (cat.equals("organizer"))
        cat = "Organizer";
      // END Q&D :)
      
      ProductEntityHome pehome = null;
      
      try {
        Object pO = MyNarrow.lookup(initialContext, "product.ProductEntityHome");
        pehome = (ProductEntityHome)MyNarrow.narrow(pO, ProductEntityHome.class);
      } catch (Exception e1) {
        e1.printStackTrace();
        String ep = "/error/lookup_error.jsp";
        try {
          forwardRequestTo(ep, req, res);
          return;
        } catch (Exception e) {
                  e.printStackTrace();
        }
      }
      
      System.err.println("product home obtained "+pehome);
      
      Collection enum = null;
      System.err.println("Before findProductsByCategory("+cat+")");
      try {
        enum = (Collection)MyNarrow.narrow(pehome.findProductsByCategory(cat),
                                           Collection.class);
      } catch (ObjectNotFoundException onfe) {
          //hack I know :(      
      } catch (Exception fe) {
          fe.printStackTrace();
          String ep = "/error/lookup_error.jsp";
          try {
            forwardRequestTo(ep, req, res);
            return;
           } catch (Exception e) {
                     e.printStackTrace();
           }
      }
      
      LinkedList liste = new LinkedList();
      if (enum != null) {
        Iterator iterator = enum.iterator();
      
        while(iterator.hasNext()) {
          ProductEntity pe = (ProductEntity)iterator.next();    
          ProductEntityPK pk = (ProductEntityPK)pe.getPrimaryKey();
        
          ProductBean pb = new ProductBean();
          pb.id = pk.id;
          pb.category = pe.getCategory();
          pb.description = pe.getDescription();
          pb.price = pe.getPrice();
          pb.image = pe.getImageURL();
          pb.quantity = -1;
        
          liste.add(pb);
        }
      }
      
      String ep = "/displayproducts.jsp";
      session.setAttribute("PRODUCTS", liste);
  
      try {
        forwardRequestTo(ep, req, res);
        return;
      } catch (Exception e4) {
          e4.printStackTrace();
      }
    }
  }
  
  
  

Reply via email to