你知道 SpringMVC的 执行流程 吗?

简介: 你知道 SpringMVC的 执行流程 吗?

SpringMVC的执行流程要分两阶段讲

  • 视图阶段(老旧JSP等)
  • 前后端分离阶段(接口开发,异步)

视图阶段


 假设我们现在有一个请求 http://localhost:8080/user/getById/1 ,请求从浏览器发出,在后台就会有一个 前端控制器DispatcherServlet 来接收请求,它是调度中心,所有的请求都要经过这个DispatcherServlet,它是由Tomcat容器进行初始化的,当这个类被加载的时候,在内部就会加载出其他组件 处理器映射器HandlerMapping、处理器适配器HandlerAdaptor、视图解析器ViewResolver


       DispatcherServlet 会到 处理器映射器中查询handler,处理器映射器内存储的就是路径与handler的对应关系,handler 简单讲就是某个Controller的某个方法,第3步中返回的并不是单纯的handler,而是处理器执行链,因为要考虑到拦截器的存在


        为什么有 处理器Handler 后还要一个 处理器适配器HandlerAdaptor,处理器适配器的作用是处理各式各样的参数和返回值,从而让处理器能够运行,之后返回ModelAndView给前端控制器


       视图解析器将逻辑视图ModelAndView解析为真正的视图,返回 View对象 给前端控制器


整体过程:


用户发送出请求到前端控制器DispatcherServlet

DispatcherServlet收到请求调用HandlerMapping(处理器映射器)

HandlerMapping找到具体的处理器,生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet

DispatcherServlet调用HandlerAdapter(处理器适配器)

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

Controller执行完成返回ModelAndView对象

HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet

DispatcherServlet将ModelAndView传给ViewReslover(视图解析器)

ViewReslover解析后返回具体View(视图)

DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)

DispatcherServlet响应用户      

现如今的开发都是 接口开发,不返回视图,而是json,那么SpringMVC的执行流程又是怎样的?

前后端分离阶段(接口开发,异步请求)

具体细节不再说明

整体的过程如下:

用户发送出请求到前端控制器DispatcherServlet

DispatcherServlet收到请求调用HandlerMapping(处理器映射器)

HandlerMapping找到具体的处理器,生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet。

DispatcherServlet调用HandlerAdapter(处理器适配器)

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

方法上添加了@ResponseBody

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

Water
+关注
目录
打赏
0
0
0
0
8
分享
相关文章
springMVC01,springMVC的执行流程【第一个springMVC例子(XML配置版本):HelloWorld】
通过一个HelloWorld实例,介绍了SpringMVC的基本概念、执行流程,并详细讲解了如何创建和配置第一个SpringMVC项目(基于XML)。
springMVC01,springMVC的执行流程【第一个springMVC例子(XML配置版本):HelloWorld】
一文带你深入理解SpringMVC的执行原理
【7月更文挑战第1天】阿里云产品初体验 SpringMVC的执行原理 本文分析的问题:文件上传的请求的处理、跨域的处理、是怎么找到目标方法的、目标方法的执行、目标方法参数的封装、返回值的处理、拦截器的执行、中间出现异常时的处理 涉及组件:文件上传解析器、跨域处理器、处理器映射器、处理器注册中心、处理器执行链、处理器适配器、参数解析器、数据绑定器、类型转换器、返回值处理器、内容协商管理器、消息转换器、异常解析器、
|
10月前
|
SpringMVC执行流程
SpringMVC执行流程
50 0
二.SpringMVC源码剖析-SpringMVC执行流程
上一篇文章写得是SpringMVC组件初始化,这篇文章我们来探讨一下SpringMVC的执行流程
浅谈SpringMVC核心组件及执行流程(含源码解析)
浅谈SpringMVC核心组件及执行流程(含源码解析)
241 0
浅谈SpringMVC核心组件及执行流程(含源码解析)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等