Advertisement
hsianghui

IS3106 Lab2 Controller.java

Aug 27th, 2017
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.73 KB | None | 0 0
  1. package servlet;
  2.  
  3. import entity.Customer;
  4. import java.io.IOException;
  5. import java.util.List;
  6. import java.util.Set;
  7. import javax.ejb.EJB;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. import manager.CustomerManager;
  13. import session.CustomerSessionLocal;
  14.  
  15.  
  16. public class Controller extends HttpServlet {
  17.  
  18.     @EJB
  19.     CustomerSessionLocal customerSessionLocal;
  20.  
  21.     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  22.             throws ServletException, IOException {
  23.         try {
  24.             CustomerManager customerManager = new CustomerManager(customerSessionLocal);
  25.             String path = request.getPathInfo();
  26.             path = path.split("/")[1];
  27.  
  28.             System.out.println("#path : " + path);
  29.  
  30.             switch (path) {
  31.                 case "createCustomer":
  32.                     //display page - do nothing
  33.                     break;
  34.                 case "editCustomer": {
  35.                     String cIdStr = request.getParameter("cId");
  36.                     Long cId = Long.parseLong(cIdStr);
  37.                     Customer customer = customerManager.getCustomer(cId);
  38.  
  39.                     request.setAttribute("customer", customer);
  40.  
  41.                     break;
  42.                 }
  43.                 case "doCreateCustomer": {
  44.                     String name = request.getParameter("name");
  45.                     String gender = request.getParameter("gender");
  46.                     String dob = request.getParameter("dob");
  47.  
  48.                     customerManager.createCustomer(name, Byte.parseByte(gender), dob);
  49.  
  50.                     //redirect to the customer listing page
  51.                     response.sendRedirect(request.getContextPath() + "/Controller/searchCustomers");
  52.                     return;
  53.                 }
  54.                 case "doDeleteCustomer": {
  55.                     String cIdStr = request.getParameter("cId");
  56.                     Long cId = Long.parseLong(cIdStr);
  57.                     customerManager.deleteCustomer(cId);
  58.  
  59.                     response.sendRedirect(request.getContextPath() + "/Controller/searchCustomers");
  60.                     return;
  61.                 }
  62.                 case "searchCustomers": {
  63.                     String field = request.getParameter("field");
  64.                     String searchValue = request.getParameter("searchValue");
  65.                     System.out.println("#searchValue : " + searchValue);
  66.  
  67.                     if (field == null || searchValue == null || searchValue.equals("")) {
  68.                         List<Customer> customers = customerManager.searchCustomer(null);
  69.                         request.setAttribute("customers", customers);
  70.                     } else {
  71.                         List<Customer> customers = null;
  72.                         switch (field) {
  73.                             case "PHONE":
  74.                                 customers = customerManager.searchCustomersByPhone(searchValue);
  75.                                 System.out.println("#phone : " + searchValue);
  76.                                 break;
  77.                             case "EMAIL":
  78.                                 customers = customerManager.searchCustomersByEmail(searchValue);
  79.                                 System.out.println("#email : " + searchValue);
  80.                                 break;
  81.                             case "NAME":
  82.                                 customers = customerManager.searchCustomer(searchValue);
  83.                                 break;
  84.                             default:
  85.                                 customers = customerManager.searchCustomersByField(field, searchValue);
  86.                                 break;
  87.                         }
  88.  
  89.                         request.setAttribute("customers", customers);
  90.                     }
  91.  
  92.                     Set<String> fieldNames = customerManager.getAllFieldNames();
  93.                     request.setAttribute("fields", fieldNames);
  94.  
  95.                     break;
  96.                 }
  97.                 case "doAddField": {
  98.                     String cIdStr = request.getParameter("cId");
  99.                     Long cId = Long.parseLong(cIdStr);
  100.                     String name = request.getParameter("name");
  101.                     String value = request.getParameter("value");
  102.                     System.out.println("#doAddField : " + cId + " " + name + " " + value);
  103.  
  104.                     try {
  105.                         customerManager.addField(cId, name, value);
  106.                     } catch (Exception e1) {
  107.                         //ignore exceptions
  108.                     }
  109.  
  110.                     response.sendRedirect(request.getContextPath() + "/Controller/searchCustomers");
  111.                     return;
  112.                 }
  113.                 case "doAddContact": {
  114.                     String cIdStr = request.getParameter("cId");
  115.                     Long cId = Long.parseLong(cIdStr);
  116.  
  117.                     String type = request.getParameter("type");
  118.                     String value = request.getParameter("value");
  119.  
  120.                     if (type.equals("PHONE")) {
  121.                         customerManager.addPhone(cId, value);
  122.                     } else if (type.equals("EMAIL")) {
  123.                         customerManager.addEmail(cId, value);
  124.                     }
  125.  
  126.                     response.sendRedirect(request.getContextPath() + "/Controller/searchCustomers");
  127.                     return;
  128.                 }
  129.                 case "doDeleteField": {
  130.                     String cIdStr = request.getParameter("cId");
  131.                     Long cId = Long.parseLong(cIdStr);
  132.                     String fIdStr = request.getParameter("fId");
  133.                     Long fId = Long.parseLong(fIdStr);
  134.  
  135.                     customerManager.deleteField(cId, fId);
  136.  
  137.                     response.sendRedirect(request.getContextPath() + "/Controller/searchCustomers");
  138.                     return;
  139.                 }
  140.                 case "doDeleteContact": {
  141.                     String cIdStr = request.getParameter("cId");
  142.                     Long cId = Long.parseLong(cIdStr);
  143.  
  144.                     customerManager.deleteContact(cId);
  145.  
  146.                     response.sendRedirect(request.getContextPath() + "/Controller/searchCustomers");
  147.                     return;
  148.                 }
  149.                 case "doUpdateCustomer": {
  150.                     String cIdStr = request.getParameter("cId");
  151.                     Long cId = Long.parseLong(cIdStr);
  152.                     String name = request.getParameter("name");
  153.                     String gender = request.getParameter("gender");
  154.                     String dob = request.getParameter("dob");
  155.  
  156.                     customerManager.updateCustomer(cId, name, Byte.parseByte(gender), dob);
  157.  
  158.                     //redirect to the customer listing page
  159.                     System.out.println(request.getContextPath());
  160.                     response.sendRedirect(request.getContextPath() + "/Controller/searchCustomers");
  161.                     return;
  162.                 }
  163.                 default:
  164.                     path = "error";
  165.                     break;
  166.             }
  167.  
  168.             request.getRequestDispatcher("/" + path + ".jsp").forward(request, response);
  169.  
  170.         } catch (Exception e) {
  171.             e.printStackTrace();
  172.             request.getRequestDispatcher("/error.jsp").forward(request, response);
  173.         }
  174.     }
  175.  
  176.     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
  177.     /**
  178.      * Handles the HTTP <code>GET</code> method.
  179.      *
  180.      * @param request servlet request
  181.      * @param response servlet response
  182.      * @throws ServletException if a servlet-specific error occurs
  183.      * @throws IOException if an I/O error occurs
  184.      */
  185.     @Override
  186.     protected void doGet(HttpServletRequest request, HttpServletResponse response)
  187.             throws ServletException, IOException {
  188.         processRequest(request, response);
  189.     }
  190.  
  191.     /**
  192.      * Handles the HTTP <code>POST</code> method.
  193.      *
  194.      * @param request servlet request
  195.      * @param response servlet response
  196.      * @throws ServletException if a servlet-specific error occurs
  197.      * @throws IOException if an I/O error occurs
  198.      */
  199.     @Override
  200.     protected void doPost(HttpServletRequest request, HttpServletResponse response)
  201.             throws ServletException, IOException {
  202.         processRequest(request, response);
  203.     }
  204.  
  205.     /**
  206.      * Returns a short description of the servlet.
  207.      *
  208.      * @return a String containing servlet description
  209.      */
  210.     @Override
  211.     public String getServletInfo() {
  212.         return "Short description";
  213.     }// </editor-fold>
  214.  
  215. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement