⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 requesttoeventtranslator.java

📁 一个优秀的供应商管理系统
💻 JAVA
字号:
package apusic.myshop.control.web;import java.util.HashMap;import java.util.ArrayList;import java.util.Iterator;import java.util.Enumeration;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import apusic.myshop.control.EventException;import apusic.myshop.control.event.BaseEvent;import apusic.myshop.control.event.LoginEvent;import apusic.myshop.control.event.LogoutEvent;import apusic.myshop.control.event.CartEvent;import apusic.myshop.control.event.CustomerEvent;import apusic.myshop.control.event.DBLoginEvent;import apusic.myshop.control.event.OrderEvent;import apusic.myshop.util.Debug;import apusic.myshop.control.web.PathNames;import apusic.myshop.util.Calendar;import apusic.myshop.util.CreditCard;import apusic.myshop.util.ContactInfo;import apusic.myshop.util.WebKeys;import apusic.myshop.customer.model.CustomerModel;import apusic.myshop.util.JSPUtil;import apusic.myshop.cart.model.CartModel;//将客户端的请求转换成事件REQUEST————》EVENTpublic class RequestToEventTranslator {  private RequestProcessor sessionClientController;  private ModelManager mm;  public RequestToEventTranslator(RequestProcessor sessionClientController,    ModelManager mm) {    this.sessionClientController = sessionClientController;    this.mm = mm;  }  public BaseEvent processRequest(HttpServletRequest req) throws EventException,  MissingFormDataException  {    // Process the request and get the necessary event depending on the URL    String selectedUrl = req.getPathInfo();    BaseEvent event = null;    if (selectedUrl == null) {      // do nothing. show the default screen.      return null;    } else if (selectedUrl.equals(PathNames.CATALOG_URL)) {      //event = createCatalogEvent(req);    } else if (selectedUrl.equals(PathNames.CART_URL)) {      mm.getCartModel();      event = createCartEvent(req);    } else if (selectedUrl.equals(PathNames.LOGOUT_URL)) {      event = new LogoutEvent();    } else if (selectedUrl.equals(PathNames.VERIFY_LOGIN_URL)) {      event = createDBLoginEvent(req);    } else if (selectedUrl.equals(PathNames.VALIDATE_NEW_CUSTOMER_URL)) {      event = createCustomerEvent(req);    } else if (selectedUrl.equals(PathNames.COMMIT_ORDER_URL)) {      event = createOrderEvent(req);    } else if (selectedUrl.equals(PathNames.VALIDATE_BILLING_INFORMATION_URL)) {      getBillingInformation(req);    } else if (selectedUrl.equals(PathNames.VALIDATE_SHIPPING_INFORMATION_URL)) {      extractShippingInformation(req);    }    return event;  }//事件1  public BaseEvent createLoginEvent(HttpServletRequest request) {    return new LoginEvent();  }//事件2  public DBLoginEvent createDBLoginEvent(HttpServletRequest request)    throws MissingFormDataException{    Debug.println("login through db ");    ArrayList missingFields = null;    DBLoginEvent event = new DBLoginEvent();    String userId = request.getParameter("userId").trim();    if (userId.equals("")) {      if (missingFields == null) {        missingFields = new ArrayList();      }      missingFields.add("用户账号");    }    String password = request.getParameter("password").trim();    if (password.equals("")) {      if (missingFields == null) {        missingFields = new ArrayList();	    }      missingFields.add("密码");    }    if (missingFields != null) {      throw new MissingFormDataException("漏输账号信息", missingFields);	  }    event.setInfo(userId, password);    return event;  }    //事件3  public CustomerEvent createCustomerEvent(HttpServletRequest request)    throws MissingFormDataException {    Debug.println("Creating new Customer");    ArrayList missingFields = null;    CustomerEvent event = new CustomerEvent();	  String userId = request.getParameter("userId").trim();    if (userId.equals("")) {      if (missingFields == null) {        missingFields = new ArrayList();      }      missingFields.add("用户账号");    }    String password = request.getParameter("password").trim();    if (password.equals("")) {      if (missingFields == null) {        missingFields = new ArrayList();	    }      missingFields.add("密码");    }    String name = request.getParameter("name").trim();    if (name.equals("")) {      if (missingFields == null) {        missingFields = new ArrayList();      }      missingFields.add("姓名");    }    String sex = request.getParameter("sex").trim();    String company = request.getParameter("company").trim();    if (company.equals("")) {      if (missingFields == null) {        missingFields = new ArrayList();      }      missingFields.add("单位");    }    String cid = request.getParameter("cid").trim();    if (cid.equals("")) {      if (missingFields == null) {        missingFields = new ArrayList();      }      missingFields.add("身份证号码");    }    String address = request.getParameter("address").trim();    if (address.equals("")) {      if (missingFields == null) {        missingFields = new ArrayList();      }      missingFields.add("详细地址");    }    String province = request.getParameter("province").trim();    if (province.equals("")) {      if (missingFields == null) {        missingFields = new ArrayList();      }      missingFields.add("省份");    }    String city = request.getParameter("city").trim();    if (city.equals("")) {      if (missingFields == null) {        missingFields = new ArrayList();      }      missingFields.add("城市");    }    String zip = request.getParameter("zip").trim();    if (zip.equals("")) {      if (missingFields == null) {        missingFields = new ArrayList();      }      missingFields.add("邮政编码");    }    String phone = request.getParameter("phone").trim();    if (phone.equals("")) {      if (missingFields == null) {        missingFields = new ArrayList();      }      missingFields.add("联系电话");    }	  String email = request.getParameter("email").trim();	  if (email.equals("")) {      if (missingFields == null) {        missingFields = new ArrayList();      }      missingFields.add("E-Mail 地址");    }    java.sql.Date regDate = new java.sql.Date((new java.util.Date()).getTime());	  if (missingFields != null) {      throw new MissingFormDataException("漏输客户信息", missingFields);	  }	  event.setInfo(userId, password, name, sex,      company, cid, address, province,      city, zip, phone, email, regDate    );	  return event;  }//事件4  private CartEvent createCartEvent(HttpServletRequest request) {    Debug.println("Started Create Cart Event");    String action = request.getParameter("action");    if (action == null) {      return null;    } else if (action.equals("purchaseItem")) {      return createPurchaseItemEvent(request);    } else if (action.equals("removeItem")) {      return createRemoveItemEvent(request);    } else if (action.equals("updateCart")) {      return createUpdateCartEvent(request);    }    return null;  }//事件5  private CartEvent createPurchaseItemEvent(HttpServletRequest request) {    Debug.println("Started Purchase Action");    CartEvent event = null;    try {      // get the id number from the parameter      String id = request.getParameter("itemId").trim();      ArrayList itemIds = new ArrayList();      itemIds.add(id);      event = new CartEvent(CartEvent.ADD_ITEM, itemIds);    } catch(Exception e) {      Debug.print(e);    }    return event;  }//事件6  private CartEvent createRemoveItemEvent(HttpServletRequest request) {    Debug.println("Started Remove Action");    CartEvent event = null;    try {      // get the id number from the parameter      String id = request.getParameter("itemId").trim();      ArrayList itemIds = new ArrayList();      itemIds.add(id);      event = new CartEvent(CartEvent.DELETE_ITEM, itemIds);    } catch(Exception e) {      Debug.print(e);    }    return event;  }//事件7  private CartEvent createUpdateCartEvent(HttpServletRequest request) {    CartEvent event = null;    HashMap quantities = new HashMap();    ArrayList itemIds = new ArrayList();    Debug.println("RequestToEventTranslator: Updating Cart Item quantities");    Enumeration enum = request.getParameterNames();    while ((enum != null) && enum.hasMoreElements()) {      String param = ((String)enum.nextElement()).trim();      if ((param != null) && param.startsWith("itemQuantity_")) {        try{          // get the item id number from the parameter          String id = param.substring("itemQuantity_".length(),          param.length());          Integer quantity = new Integer(0);          if (id != null) {            // remove image map info from the parameter            if (id.lastIndexOf(".") != -1) {              id = id.substring(0, id.lastIndexOf("."));            }            try {              quantity= Integer.valueOf(request.getParameter(param));              itemIds.add(id);              quantities.put(id, quantity);            } catch (NumberFormatException ex) {              // if the user uses something other than numbers leave as is            }            event = new CartEvent(CartEvent.UPDATE_ITEM,  itemIds, quantities);          }        } catch(Exception e) {          Debug.print(e);        }      }    }    return event;  }  private void getBillingInformation(HttpServletRequest request)  	throws MissingFormDataException {    Debug.println("Getting Billing Information");	  ArrayList missingFields = null;    String monthString = request.getParameter("expiration_month");	  if (monthString.equals("")) {	    if (missingFields == null) {		    missingFields = new ArrayList();	    }	    missingFields.add("Credit Card Month");	  }	  int month = Integer.parseInt(monthString);  	String yearString = request.getParameter("expiration_year");	  if (yearString.equals("")){      if (missingFields == null) {		    missingFields = new ArrayList();	    }	    missingFields.add("Credit Card Year");	  }	  int year = Integer.parseInt(yearString);	  Calendar expiryDate = Calendar.getInstance();	 // months in Calendar start at 0 and not one  	expiryDate.set(Calendar.MONTH, month-1);	  expiryDate.set(Calendar.YEAR, year);  	String cardType = request.getParameter("credit_card_type").trim();	  if (cardType.equals("")) {	    if (missingFields == null) {		    missingFields = new ArrayList();	    }	    missingFields.add("信用卡类别");	  }  	String cardNo = request.getParameter("credit_card_number").trim();	  if (cardNo.equals("")) {	    if (missingFields == null) {		    missingFields = new ArrayList();	    }	    missingFields.add("卡号");	  }  	if (missingFields != null) {	    throw new MissingFormDataException("漏输信用卡信息", missingFields);	  }    HttpSession session = request.getSession();	  CreditCard card = new CreditCard(cardNo, cardType, expiryDate);	  session.setAttribute(WebKeys.CreditCardKey, card);    // get billing address    ContactInfo billingContactInfo = extractContactInfo(request);	  session.setAttribute(WebKeys.BillingContactInfoKey, billingContactInfo);    // copy shipping address if the same as billing address    if (request.getParameter("ship_to_billing_address") != null) {	    session.setAttribute(WebKeys.ShippingContactInfoKey,				 billingContactInfo);	    session.setAttribute(WebKeys.ShippingAddressRequiredKey, "false");	  } else {	    session.setAttribute(WebKeys.ShippingAddressRequiredKey, "true");	  }    Debug.println("<<<get bill info end.");  }  private void extractShippingInformation(HttpServletRequest request)    throws MissingFormDataException {	  Debug.println("Extracting Shipping Information");	  request.getSession().setAttribute(WebKeys.ShippingContactInfoKey,      extractContactInfo(request));  }  // parse address form and generate a ContactInformation object  private ContactInfo extractContactInfo(HttpServletRequest request)	  throws MissingFormDataException {	  ArrayList missingFields = null;	  String name =  request.getParameter("name").trim();	  if (name.equals("")) {	    if (missingFields == null) {		    missingFields = new ArrayList();	    }	    missingFields.add("姓名");	  }    String phone = request.getParameter("phone").trim();	  if (phone.equals("")){	    if (missingFields == null) {		    missingFields = new ArrayList();	    }	    missingFields.add("电话号码");	  }    String email = request.getParameter("email");    String address = request.getParameter("address").trim();	  if (address.equals("")){	    if (missingFields == null) {		    missingFields = new ArrayList();	    }	    missingFields.add("详细地址");	  }    String province = request.getParameter("province").trim();	  if (province.equals("")) {	    if (missingFields == null) {		    missingFields = new ArrayList();	    }	    missingFields.add("省份");	  }	  String city = 	request.getParameter("city").trim();	  if (city.equals("")){	    if (missingFields == null) {		    missingFields = new ArrayList();      }	    missingFields.add("所在城市");	  }    String zip = request.getParameter("zip").trim();	  if (zip.equals("")){	    if (missingFields == null) {		    missingFields = new ArrayList();      }	    missingFields.add("邮政编码");	  }	  String country = request.getParameter("country");	  if (missingFields != null) {	    throw new MissingFormDataException("漏输地址信息", missingFields);	  }	  return new ContactInfo(name, phone, email, address,      province, city, zip, country);  }//事件8  private OrderEvent createOrderEvent(HttpServletRequest request) {	  Debug.println("Creating Order Event");	  CustomerModel customer = mm.getCustomerModel();	  int requestId = JSPUtil.getEventId();	  CartModel cart = mm.getCartModel();	  OrderEvent oe = new OrderEvent();	  HttpSession session = request.getSession();	  ContactInfo shippingInfo = (ContactInfo)	    session.getAttribute(WebKeys.ShippingContactInfoKey);	  ContactInfo billingInfo = (ContactInfo)	    session.getAttribute(WebKeys.BillingContactInfoKey);    //String carrier = (String) session.getAttribute(WebKeys.CarrierKey);    String userId = (String) session.getAttribute(WebKeys.UserIdKey);	  CreditCard creditCard = (CreditCard)      session.getAttribute(WebKeys.CreditCardKey);	  oe.setInfo(requestId, userId, shippingInfo.getName(),      shippingInfo.getAddress(), shippingInfo.getProvince(),      shippingInfo.getCity(), shippingInfo.getZip(),      shippingInfo.getCountry(), billingInfo.getName(),      billingInfo.getAddress(), billingInfo.getProvince(),      billingInfo.getCity(), billingInfo.getZip(),      billingInfo.getCountry(), creditCard);	  // set up the request id attribute so that the pages can	  // create orderwebimpl correctly.	  request.setAttribute(WebKeys.RequestIdKey, new Integer(requestId));	  return oe;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -