• servlet之隐藏域


    隐藏域的实现,

    商品对象

    package app02b;

    public class Customer {
        
        private int id;
        private String name;
        private String city;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getCity() {
            return city;
        }
        public void setCity(String city) {
            this.city = city;
        }
    }

    servlet的写法

    package app02b;

    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;

    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    /**
     * 隐藏域的实现
     */
    @WebServlet( name = "CustomerServlet", urlPatterns = { "/customer", "/editCustomer", "/updateCustomer"})
    public class CustomerServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        private List<Customer> customers = new ArrayList<Customer>();
        /**
         * @see HttpServlet#HttpServlet()
         */
        public CustomerServlet() {
            super();
            // TODO Auto-generated constructor stub
        }

        /**
         * 初始化对象
         */
        @Override
        public void init() throws ServletException {
             Customer customer1 = new Customer();
             customer1.setId(1);
             customer1.setName("Donald D.");
             customer1.setCity("Miami");
             customers.add(customer1);
             
             Customer customer2 = new Customer();
             customer2.setId(2);
             customer2.setName("Mickey M.");
             customer2.setCity("Orlando");
             customers.add(customer2);
        }
        
        /**
         * 主页
         * @param response
         * @throws IOException
         */
        private void sendCustomerList(HttpServletResponse response)
                throws IOException {
            response.setContentType("text/html");
            PrintWriter writer = response.getWriter();
            writer.println("<html><head><title>Customers</title></head>"
                    + "<body><h2>Customers </h2>");
            writer.println("<ul>");
            // 显示先存的信息
            for (Customer customer : customers) {
                writer.println("<li>" + customer.getName()
                       + "(" + customer.getCity() + ") ("
                       // 重定向,后面优选的id
                       + "<a href='editCustomer?id=" + customer.getId()
                       + "'>edit</a>)");
            }
            writer.println("</ul>");
            writer.println("</body></html>");
            
        }
        
        /**
         * 修改页面
         * @param request
         * @param response
         * @throws IOException
         */
        private void sendEditCustomerForm(HttpServletRequest request,
                HttpServletResponse response) throws IOException {
            response.setContentType("text/html");
            PrintWriter writer = response.getWriter();
            int customerId = 0;
            try {
                customerId =
                        Integer.parseInt(request.getParameter("id"));
            } catch (NumberFormatException e) {
            }
            Customer customer = getCustomer(customerId);
            
            if (customer != null) {
                writer.println("<html><head>"
                        + "<title>Edit Customer</title></head>"
                        + "<body><h2>Edit Customer</h2>"
                        + "<form method='post' "
                        // action属性决定了重定向的页面
                        + "action='updateCustomer'>");
                writer.println("<input type='hidden' name='id' value='"
                        + customerId + "'/>");
                writer.println("<table>");
                writer.println("<tr><td>Name:</td><td>"
                        + "<input name='name' value='" +
                        // 没发现replaceAll("'", "&#39;")有什么区别,暂时可能能力达不到,发现不了需求吧
                        customer.getName().replaceAll("'", "&#39;")
                        + "'/></td></tr>");
                writer.println("<tr><td>City:</td><td>"
                        + "<input name='city' value='" +
                        customer.getCity().replaceAll("'", "&#39;")
                        + "'/></td></tr>");
                writer.println("<tr>"
                        + "<td colspan='2' style='text-align:right'>"
                        + "<input type='submit' value='Update'/></td>"
                        + "</tr>");
                writer.println("<tr><td colspan='2'>"
                        // 返回主页
                        + "<a href='customer'>Customer List</a>"
                        + "</td></tr>");
                writer.println("</table>");
                writer.println("</form></body>");
            } else {
                writer.println("No customer found");
            }
            
        }
        
        /**
         * 根据id获取详细信息
         */
        private Customer getCustomer(int customerId) {
            for (Customer customer : customers) {
                if (customer.getId() == customerId) {
                    return customer;
                }
            }
            return null;
        }
        
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
             String uri = request.getRequestURI();
                 // 根据url的后缀得知执行哪个页面
                if (uri.endsWith("/customer")) { // 主页
                    sendCustomerList(response);
                } else if (uri.endsWith("/editCustomer")) { // 修改页
                    sendEditCustomerForm(request, response);
                }
        }

        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // 修改
            int customerId = 0;
            try {
                customerId =
                        Integer.parseInt(request.getParameter("id"));
            } catch (NumberFormatException e) {
            }
            Customer customer = getCustomer(customerId);
            if (customer != null) {
                customer.setName(request.getParameter("name"));
                customer.setCity(request.getParameter("city"));
            }
            sendCustomerList(response);
        }

    }

  • 相关阅读:
    nyoj 115------城市平乱( dijkstra // bellman )
    nyoj-----284坦克大战(带权值的图搜索)
    nyoj-----42一笔画问题
    hdu-------1081To The Max
    nyoj------170网络的可靠性
    HDUOJ-------1052Tian Ji -- The Horse Racing(田忌赛马)
    初学Java之Pattern与Matcher类
    初学java之StringBuffer类的常用方法
    初学java之大数处理
    hdu---1024Max Sum Plus Plus(动态规划)
  • 原文地址:https://www.cnblogs.com/wadmwz/p/7528214.html
Copyright © 2020-2023  润新知