设置servlet以添加新客户

时间:2014-04-15 00:01:05

标签: java jsp servlets

我想要完成的是当用户单击表单上的提交时,尝试在我的servlet中创建一个新客户。表单采用jsp文件的形式。因此,当用户单击提交时,它将转到servlet中的doPost方法。当我点击提交时,我想在客户ID中添加一个。还没有涉及数据库。还在学习概念。

每次点击提交时都会抛出错误。我在doPost中遇到的两个错误都被抛出。

如何解决此问题

的Servlet

package edu.witc.Assignment03.controller;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//import javax.servlet.annotation.WebServlet;
//import javax.servlet.http.HttpServlet;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;




import javax.servlet.http.HttpSession;

import edu.witc.Assignment03.model.Customer;
import edu.witc.Assignment03.model.Phone;
import edu.witc.Assignment03.model.States;


@WebServlet(description = "servlet to get act as controller between form and models", urlPatterns = { "/customerServlet","/addCustomer","/addPet", "/customerManagement" })
public class CustomerServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public CustomerServlet() {
        super();
    }

    private List<edu.witc.Assignment03.model.Customer> customers = new ArrayList<Customer>();

    private void processRequest(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub

        HttpSession session = request.getSession();
        Phone phone = new Phone();
        States state = new States();
        Collection<Phone> phones = phone.getPhoneCollection();
        Collection<States> states = state.getStateCollection();
            session.setAttribute("phones", phones);
            session.setAttribute("states", states);
    }

    private void addCustomer(HttpServletResponse response, HttpServletRequest request)//redirect to form
            throws IOException, ServletException {
            String url = "/customerManagement.jsp";
            processRequest(request, response);
            Customer customer = new Customer();
            HttpSession session = request.getSession();
            session.setAttribute("customer", customer);
            request.getRequestDispatcher(url).forward(request,response);
     }


    private void addPet(HttpServletResponse response, HttpServletRequest request)//redirect to pet page
         throws IOException, ServletException {
         String url = "/pets.jsp";
         request.getRequestDispatcher(url).forward(request,response);
    }

    private Customer getCustomer(int customerId) {
        for (Customer customer : customers) {
            if (customer.getCustomerId() == customerId) {
                return customer;
            }
        }
        return null;
    }

    private void makeCustomerReceipt(HttpServletRequest request, 
            HttpServletResponse response) throws IOException, ServletException {

            String url = "/receipt.jsp";
            request.setAttribute("customers", customers);
            request.getRequestDispatcher(url).forward(request,response);
    }

    public void doGet(HttpServletRequest request, 
            HttpServletResponse response)
            throws ServletException, IOException {
                String action = request.getParameter("action");
                if("addCustomer".equals(action)) { 
                    System.out.println("doGet add customer");
                    addCustomer(response, request);
                }
                else if("addPet".equals(action)) { 
                    System.out.println("doGet pet");
                    addPet(response, request);
                }
    }

    public void doPost(HttpServletRequest request, 
            HttpServletResponse response)
            throws ServletException, IOException {
        // update customer
        int customerId = 0;
        Customer testCustomer = new Customer();
        testCustomer.setCustomerId(1);
        testCustomer.setFirstName("Test");
        customers.add(testCustomer);

        try {
            customerId = 
                    Integer.parseInt(request.getParameter("id"));
        } catch (NumberFormatException e) {
           response.getWriter().write("Error: Customer ID could not be parsed to a number");
        }
        Customer customer = getCustomer(customerId);
        if (customer != null) {
            customer.setFirstName(request.getParameter("firstName"));
            customer.setLastName(request.getParameter("lastName"));
            customer.setEmail(request.getParameter("email"));
            customer.setPhone(request.getParameter("phone"));
            customer.setAddress(request.getParameter("address"));
            customer.setCity(request.getParameter("city"));
            customer.setZip(request.getParameter("zip"));
            makeCustomerReceipt(request, response);
        }
        else
        {
           response.getWriter().write("Error: customer is null");
        }
    }
}

0 个答案:

没有答案