黑马程序员技术交流社区

标题: BaseServlet思想 [打印本页]

作者: wk020510    时间: 2019-4-4 13:36
标题: BaseServlet思想
为了减少servlet数量,将共有方法提取,归纳为一个servlet项目

在注解("/项目名/*")并且继承创建的Basesevlet;

在basesevlet方法中

    获取请求路径
    url=request。getRequstUIL();【/虚拟路径、/项目名、/方法
    获取方法名称
    methodname=uil.substring(url.LastIndexof("/"+1))【/方法
        获取执行方法对象
        method=this.getClass().getMehod(methdname,HttpServletRequest.class,httpServletResponse.class)
        method.invoke(this,req,resp)

    BaseServlet 同样会继承HttpServlet,覆盖重写其中的方法:
    ----------------------不同的关键-------------------------
        BaseServlet会如同一个Servlet的工具类,在抽取共用方法时,简化以前的书写方式:
        //获取请求路径
    String  uri = request.getResquestURI()//        /虚拟路径/项目/方法
    //获取方法名【不是执行方法】
    String methdoName=uri.subString(uri.lastIndexof('/')+1);
                                    //方法获取,
    //找到调用方法类的class文件,然后调用getMethod执行方法
    method=this.getClass().getMethod(methodName,
    HttpServletRequest.class, HttpServletResponse.class)
                                //执行方法,以后的方法前缀为public
        method.invoke(this,requset,responcs)
        
        
        
        ================整理公用方法============================
     //将对象序列化为json对象,并写回客户端
        void writeValue(obj,responce)
       mapper = new ObjectMapper();
    response.setContentType("application/json;charset=utf-8")
        mapper.writeValue(response,getOutputStream(),obj)
     
        
       //将序列化对象json,返回
        String writeValueAsString(Object obj)
        ObjectMapper mapper = new ObjectMapper();
            return mapper.writeValueAsString(obj);
   



作者: 千年老腰    时间: 2019-12-6 08:44
这样继承了,重定向和转发路径不知道怎么写





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2