• spring MVC执行流程与源码解析


    springMVC执行流程分析

    对于一个springMVC入门案例的执行流程:

    1、(客户端)浏览器发送请求到DispatcherServlet前端控制器,

    2、DispatcherServlet前端控制器接收到请求后回去找HandlerMapping处理器映射器

    3、通过HandlerMapping处理器映射器查找合适(根据request对象)的处理器(也就是controller类)

    4、HandlerMapping处理器映射器会给DispatcherServlet前端控制器返回处理器执行链HandlerExecutionChain,在这个执行链里面包含了拦截器HandlerInterceptor和Handler

    5、拿到执行链后就会去找HandlerAdapter处理器适配器,这个才是真正区调用controller里面的方法的。(映射器是找controller、适配器是调用controller)

    6、HandlerAdapter处理器适配器会去调用Handler(controller),执行处理器里面的方法

    8、处理器里面的方法执行完之后会给处理器适配器HandlerAdapter返回ModelAndView对象,再返回给DispatcherServlet前端控制器。

    9、DispatcherServlet前端控制器接收到ModelAndView对象会传给ViewResolver视图解析器,进行试图解析(拼接前后缀)

    10、ViewResolver视图解析器给DispatcherServlet前端控制器返回View对象

    11、将model中的数据填充至view中,渲染视图(controller中会设置后变量名和值,前端可以根据变量名取值,进行渲染),最终响应给客户端

     doService方法()

    在DispatcherServlet中会有一个doService方法,这里其实是调用了继承父类Servlet的Service方法,在这里面会判断请求方式,根据不同的请求方式执行具体的doService方法,但在父类里面这只是一个抽象方法,具体实现就是DispatcherServlet里面的doService()

  • 相关阅读:
    3.1虚拟化和安装Docker
    无涯教程-JavaScript - WORKDAY.INTL函数
    电子邮件营销初学者指南(三):8个成功策略
    浅浅的计算机网络知识
    Linux实战——网络连接模式的三种模式
    linux小命令
    智慧住建解决方案-最新全套文件
    Jmeter测试关联接口
    Vue开发中cnpm,yarn,npm,nodejs 区别与关系
    Python计算目标检测中的IoU
  • 原文地址:https://blog.csdn.net/PnJgHT/article/details/127571994