zoukankan      html  css  js  c++  java
  • 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);
        }

    }

  • 相关阅读:
    使用Vue快速开发单页应用
    轻松入门React和Webpack
    使用Redux管理你的React应用
    深入理解 react-router 路由系统
    webpack学习之路
    webpack编译流程漫谈
    HTML5无刷新修改Url,history pushState/replaceState
    gulp的流与执行顺序
    RequireJS对文件合并与压缩实现方法
    RequireJS模块化后JS压缩合并
  • 原文地址:https://www.cnblogs.com/wadmwz/p/7528214.html
Copyright © 2011-2022 走看看