SpringMVC的执行流程

过去的开发中,视图阶段(老旧JSP等)

1.首先用户发送请求到前端控制器DispatcherServlet(这是一个调度中心)

2.前端控制器DispatcherServlet收到请求后调用处理器映射器HandlerMapping

3.处理器映射器HandlerMapping找到具体的处理器,可查找xml配置或注解配置,生成处理器对象及处理器拦截器(如果有),再将处理器执行链返回给DispatcherServlet.

4.前端控制器DispatcherServlet调用处理器适配器HandlerAdapter.

5.处理器适配器HandlerAdapter经过适配调用具体的处理器Handler/Controller.

6.处理器Handler/Controller执行完成返回ModelAndView对象给处理器适配器HandlerAdapter.

7.处理器适配器HandlerAdapter将处理器Handler/Controller的执行结果ModelAndView返回给前端控制器DispatcherServlet.

8.前端控制器DispatcherServlet将ModelAndView传给视图解析器ViewReslover.

9.视图解析器ViewReslover解析后返回具体View视图.

10.前端控制器DispatcherServlet根据View进行渲染视图,即将模型数据填充至视图中

理解记忆思路:主要要弄清前端控制器带来的三个组件处理器映射器、处理器适配器与视图解析器分别是干什么用的,处理器映射器是个map集合可通过key值参数访问路径去寻找value参数访问对应的方法是哪个方法,由于可能会有拦截器存在所以要将方法与拦截器一起封装打包成处理器执行链返回。前端控制器为调度中心三个组件都是由调度中心来调度的彼此之间无直接联系。接收参数时参数的形式类型并不是统一的,为方便接收需要参数类型转换器,返回参数也一样形式多种类型多样需要转换处理,这就是处理器适配器的作用。视图解析器的作用就是将逻辑视图解析为真正的视图。

当然现在的开发,基本都是前后端分离的开发,并没有视图这些,一般都是handler中使用Response直接结果返回.

1.首先用户发送请求到前端控制器DispatcherServlet(这是一个调度中心)

2.前端控制器DispatcherServlet收到请求后调用处理器映射器HandlerMapping

3.处理器映射器HandlerMapping找到具体的处理器,可查找xml配置或注解配置,生成处理器对象及处理器拦截器(如果有),再将处理器执行链返回给DispatcherServlet.

4.前端控制器DispatcherServlet调用处理器适配器HandlerAdapter.

5.处理器适配器HandlerAdapter经过适配调用具体的处理器Handler/Controller.

6.方法上添加了@ResponseBody

7.通过HttpMessageConverter来返回结果转换为JSON并响应.

相关推荐

  1. SpringMVC执行流程

    2024-02-19 12:40:04       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-19 12:40:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-19 12:40:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-19 12:40:04       82 阅读
  4. Python语言-面向对象

    2024-02-19 12:40:04       91 阅读

热门阅读

  1. 文件 IO 2月18日学习笔记

    2024-02-19 12:40:04       47 阅读
  2. 44 | 完成作品:理想与现实

    2024-02-19 12:40:04       42 阅读
  3. Chapter 8 - 16. Congestion Management in TCP Storage Networks

    2024-02-19 12:40:04       56 阅读
  4. CSS之重绘与回流

    2024-02-19 12:40:04       49 阅读
  5. STM32 USART入门指南

    2024-02-19 12:40:04       52 阅读
  6. 服务端和客户端以及前后端相关概念区分

    2024-02-19 12:40:04       49 阅读
  7. git----->git pull和git fetch区别

    2024-02-19 12:40:04       52 阅读
  8. Mybatis

    Mybatis

    2024-02-19 12:40:04      47 阅读