/* * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. * * You may not modify, use, reproduce, or distribute this software * except in compliance with the terms of the license at: * http://developer.sun.com/berkeley_license.html */ package controller; import entity.Customer; import entity.CustomerOrder; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.ejb.EJB; import javax.servlet.ServletException; import javax.servlet.annotation.HttpConstraint; import javax.servlet.annotation.ServletSecurity; import javax.servlet.annotation.ServletSecurity.TransportGuarantee; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import javax.servlet.http.HttpSession; import session.CustomerFacade; import session.CustomerOrderFacade; import session.OrderManager; /** * * @author tgiunipero */ @WebServlet(name = "AdminServlet", urlPatterns = {"/admin/", "/admin/viewOrders", "/admin/viewCustomers", "/admin/customerRecord", "/admin/orderRecord", "/admin/logout"}) public class AdminServlet extends HttpServlet { @EJB private OrderManager orderManager; @EJB private CustomerFacade customerFacade; @EJB private CustomerOrderFacade customerOrderFacade; private String userPath; private Customer customer; private CustomerOrder order; private List orderList = new ArrayList(); private List customerList = new ArrayList(); /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(true); userPath = request.getServletPath(); // if viewCustomers is requested if (userPath.equals("/admin/viewCustomers")) { customerList = customerFacade.findAll(); request.setAttribute("customerList", customerList); } // if viewOrders is requested if (userPath.equals("/admin/viewOrders")) { orderList = customerOrderFacade.findAll(); request.setAttribute("orderList", orderList); } // if customerRecord is requested if (userPath.equals("/admin/customerRecord")) { // get customer ID from request String customerId = request.getQueryString(); // get customer details customer = customerFacade.find(Integer.parseInt(customerId)); request.setAttribute("customerRecord", customer); // get customer order details order = customerOrderFacade.findByCustomer(customer); request.setAttribute("order", order); } // if orderRecord is requested if (userPath.equals("/admin/orderRecord")) { // get customer ID from request String orderId = request.getQueryString(); // get order details Map orderMap = orderManager.getOrderDetails(Integer.parseInt(orderId)); // place order details in request scope request.setAttribute("customer", orderMap.get("customer")); request.setAttribute("products", orderMap.get("products")); request.setAttribute("orderRecord", orderMap.get("orderRecord")); request.setAttribute("orderedProducts", orderMap.get("orderedProducts")); } // if logout is requested if (userPath.equals("/admin/logout")) { session = request.getSession(); session.invalidate(); // terminate session response.sendRedirect("/AffableBean/admin/"); return; } // use RequestDispatcher to forward request internally userPath = "/admin/index.jsp"; try { request.getRequestDispatcher(userPath).forward(request, response); } catch (Exception ex) { ex.printStackTrace(); } } /** * Handles the HTTP <code>GET</code> method. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP <code>POST</code> method. * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } }