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);
        }

    }

  • 相关阅读:
    PHP调用WCF提供的方法
    关于git报 warning: LF will be replaced by CRLF in README.md.的警告的解决办法
    vue中引入mui报Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them的错误
    微信小程序报Cannot read property 'setData' of undefined的错误
    Vue那些事儿之用visual stuido code编写vue报的错误Elements in iteration expect to have 'v-bind:key' directives.
    关于xampp中无法启动mysql,Attempting to start MySQL service...的解决办法!!
    PHP的环境搭建
    新手PHP连接MySQL数据库出问题(Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES))
    手机号码、获得当前时间,下拉框,填写限制
    团队作业(五):冲刺总结
  • 原文地址:https://www.cnblogs.com/wadmwz/p/7528214.html
Copyright © 2011-2022 走看看