美文网首页
使得一个 Servlet 能接收并处理多个请求

使得一个 Servlet 能接收并处理多个请求

作者: 灰气球 | 来源:发表于2017-08-24 10:09 被阅读0次

    Servlet 的抽取

    使得一个 servlet 能接收并处理多个请求

    1. 前端访问的时候, 在请求参数中添加 method 属性, 其中值是将要访问的方法
    2. 在 BaseServlet 中利用反射机制, 根据 method 的值, 调用对应的方法
    public class BaseServlet extends HttpServlet {
    
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            
            req.setCharacterEncoding("UTF-8");
            
            try {
                //1、获得请求的method的名称
                String methodName = req.getParameter("method");
                //2、获得当前被访问的对象的字节码对象
                Class clazz = this.getClass();//ProductServlet.class ---- UserServlet.class
                //3、获得当前字节码对象的中的指定方法
                Method method = clazz.getMethod(methodName, HttpServletRequest.class,HttpServletResponse.class);
                //4、执行相应功能方法
                method.invoke(this, req,resp);
                
            } catch (Exception e) {
                e.printStackTrace();
            }
            
        }
    }
    
    1. 抽取完成后, 业务 Servlet 的书写方式变成:

      1. 继承 BaseServlet
      2. 实现业务方法
      public class PrdocutServlet extends BaseServlet {
      
          //删除一个商品
          public void delProFromCart(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              // 删除一个商品的逻辑
          }
      
          //根据商品的类别获得商品的列表
          public void productList(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
              // 逻辑代码
          }
      
      }
      

    相关文章

      网友评论

          本文标题:使得一个 Servlet 能接收并处理多个请求

          本文链接:https://www.haomeiwen.com/subject/wqvsdxtx.html