A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wk020510 初级黑马   /  2019-4-4 13:36  /  1387 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为了减少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);
   


1 个回复

倒序浏览
这样继承了,重定向和转发路径不知道怎么写
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马