/**
   * 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 {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    Model model = new Model();

    String order = null;
    order = request.getParameter("placeOrder");

    System.out.println(order);

    if (order != null) {
      model.calculateOrder(request);
      request.setAttribute("orderSubTotal", model.getOrderSubTotal());
      request.setAttribute("orderGrandTotal", model.getOrderGrandTotal());
      request.setAttribute("tax", model.getTax());
      request.setAttribute("menu", model.getMenuSelection());
      RequestDispatcher view = request.getRequestDispatcher("Bill.jsp");

      view.forward(request, response);
    } else {
      HashMap<String, String> menu = model.getMenuOptions();

      request.setAttribute("menu", menu);
      RequestDispatcher view = request.getRequestDispatcher("MenuCheckboxes.jsp");

      view.forward(request, response);
    }
  }