【网络编程处理流程:业务Controller、注解、类对象】

网络编程处理业务功能的方法流程

DispatcherServlet是Spring MVC的核心类,和底层容器TOMCAT整合使用。使得业务员写代码时候只关注业务。
1、定位controller路径,listFiles文件清单 遍历找文件名称;

2、得到名称 class名称,截取.结束为“.”的部分,然后拼接class名称;

3、判断是否为Controller注解的类 实例化这个Controller ,obj;

4、判断是否RequestMapping注解的方法,得到这个类对象 得到这些类对象的参数value;

5、判断这个value参数跟path路径是否一致 一致就调用这个业务方法,传入reque,response 不一致的就走静态页面操作。

      try {
            File dir = new File(rootDir,"com/webserver/controller");
            File[] subs = dir.listFiles(f->f.getName().endsWith(".class"));
            for(File sub : subs){
                String fileName = sub.getName();
                String className = fileName.substring(0,fileName.indexOf("."));
                className = "com.webserver.controller."+className;
                Class cls = Class.forName(className);
                if(cls.isAnnotationPresent(Controller.class)){
                    Object obj = cls.newInstance();//实例化这个Controller
                    Method[] methods = cls.getDeclaredMethods();
                    for(Method method : methods){
                        if(method.isAnnotationPresent(RequestMapping.class)){
                            RequestMapping rm = method.getAnnotation(RequestMapping.class);
                            String value = rm.value();
                            if(path.equals(value)){//如果请求路径与该方法中@RequestMapping注解的参数值一致
                                method.invoke(obj,request,response);
                                return;//业务处理完直接接触处理请求的操作(不走下面的处理静态页面操作)
                            }
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值