SpringMVC执行流程

简介: SpringMVC的流程

53aa66e68fd444e1874b90f90ec8421e.png

SpringMVC的流程


1.整个过程开始于客户端发出的一个HTTP请求,Web应用服务器接收到这个请求。如果匹配DispatcherServlet的请求映射路径,则Web容器将该请求转交给DispatcherServlet处理。

2.DispatcherServlet接收到这个请求后,将根据请求的信息(包括URL、HTTP方法、请求报文头、请求参数、Cookie等)及HandlerMapping的配置找到处理请求的处理器(Handler)。可将HandlerMapping看做路由控制器,将Handler看做目标主机。值得注意的是,在Spring MVC中并没有定义一个Handler接口,实际上任何一个Object都可以成为请求处理器。

3.当DispatcherServlet根据HandlerMapping得到对应当前请求的Handler后,通过HandlerAdapter对Handler进行封装,再以统一的适配器接口调用Handler。HandlerAdapter是Spring MVC框架级接口,顾名思义,HandlerAdapter是一个适配器,它用统一的接口对各种Handler方法进行调用。

4.处理器完成业务逻 辑的处理后,将返回一个ModelAndView给DispatcherServlet,ModelAndView包含了视图逻辑名和模型数据信息。

5.ModelAndView中包含的是“逻辑视图名”而非真正的视图对象,DispatcherServlet借由ViewResolver完成逻辑视图名到真实视图对象的解析工作。

6.当得到真实的视图对象View后,DispatcherServlet就使用这个View对象对ModelAndView中的模型数据进行视图渲染。

7.最终客户端得到的响应消息可能是一个普通的HTML页面,也可能是一个XML或JSON串,甚至是一张图片或一个PDF文档等不同的媒体形式。


SpringMVC中重要组件


  • 前端控制器 DispatcherServlet:接收请求、响应结果,相当于转发器,有了 DispatcherServlet 就减少了其它组件之间的耦合度
  • 处理器映射器 HandlerMapping:根据请求的 URL 来查找 Handler
  • 处理器适配器 HandlerAdapter:负责执行 Handler
  • 处理器 Handler:处理业务逻辑的 Java 类(我们自己写的 Controller 类)
  • 视图解析器 ViewResolver:进行视图的解析,根据视图逻辑名将 ModelAndView 解析成真正的视图(view)
  • 视图 View:View 是一个接口, 它的实现类支持不同的视图类型,如 jsp,freemarker, pdf 等
相关文章
|
5月前
|
前端开发
SpringMVC的执行流程
SpringMVC的执行流程
|
3月前
|
JSON 前端开发 Java
一文带你深入理解SpringMVC的执行原理
【7月更文挑战第1天】阿里云产品初体验 SpringMVC的执行原理 本文分析的问题:文件上传的请求的处理、跨域的处理、是怎么找到目标方法的、目标方法的执行、目标方法参数的封装、返回值的处理、拦截器的执行、中间出现异常时的处理 涉及组件:文件上传解析器、跨域处理器、处理器映射器、处理器注册中心、处理器执行链、处理器适配器、参数解析器、数据绑定器、类型转换器、返回值处理器、内容协商管理器、消息转换器、异常解析器、
|
5月前
|
XML 存储 JSON
SpringMVC执行流程
SpringMVC执行流程
28 0
|
前端开发 Java
springMVC执行流程详解
springMVC执行流程详解
126 0
springMVC执行流程详解
|
存储 JSON 前端开发
你知道 SpringMVC的 执行流程 吗?
你知道 SpringMVC的 执行流程 吗?
104 0
|
前端开发 Java 调度
springMVC执行流程
springMVC执行流程
109 0
|
XML 前端开发 调度
SpringMVC的执行流程知道嘛
SpringMVC的执行流程知道嘛
52 0
|
存储 前端开发 Java
二.SpringMVC源码剖析-SpringMVC执行流程
上一篇文章写得是SpringMVC组件初始化,这篇文章我们来探讨一下SpringMVC的执行流程
|
XML 前端开发 Java
浅谈SpringMVC核心组件及执行流程(含源码解析)
浅谈SpringMVC核心组件及执行流程(含源码解析)
174 0
浅谈SpringMVC核心组件及执行流程(含源码解析)