Package rewards.web

Source Code of rewards.web.RewardsServlet

package rewards.web;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.web.context.support.WebApplicationContextUtils;

import rewards.Dining;
import rewards.RewardConfirmation;
import rewards.RewardNetwork;

/**
* Accepts HTTP requests from browser user agents to reward for dining. Maps HTTP requests to application operations.
*
* A controller. Part of the presentation layer. A client of the application layer.
*/
public class RewardsServlet extends HttpServlet {

  /**
   *
   */
  private static final long serialVersionUID = 5038314165401848504L;
  private RewardNetwork rewardNetwork;

  @Override
  public void init() throws ServletException {
    // lookup the bean container hosting the application
    BeanFactory beanFactory = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
    // lookup the entry-point into the application, our reward network
    rewardNetwork = (RewardNetwork) beanFactory.getBean("rewardNetwork");
  }

  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
      IOException {
    String creditCardNumber = request.getParameter("creditCardNumber");
    String amount = request.getParameter("amount");
    String merchantNumber = request.getParameter("merchantNumber");

    // prepare input into the application service
    Dining dining = Dining.createDining(amount, creditCardNumber, merchantNumber);

    // expose in "request scope" for other resources to access
    request.setAttribute("dining", dining);

    try {
      // invoke application
      RewardConfirmation confirmation = rewardNetwork.rewardAccountFor(dining);
      // expose in "request scope" for other resources to access
      request.setAttribute("rewardConfirmation", confirmation);
      RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/views/rewardConfirmation.jsp");
      // forward to a confirmation JSP resource for rendering
      dispatcher.forward(request, response);
    } catch (Exception e) {
      RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/views/rewardError.jsp");
      // forward to an error JSP resource for rendering
      dispatcher.forward(request, response);
    }
  }
}
TOP

Related Classes of rewards.web.RewardsServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.