SpringMVC 的执行流程

SpringMVC 的执行流程

  1. SpringMVC 框架

    SpringMVC 是一个基于 Java 的实现了 MVC 设计模式的请求驱动类型的轻量级 Web 框架,通过把 Model,View,Controller 分离,将 Web 层进行职责解耦,把复杂的 Web 应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 简而言之,SpringMVC 就是将我们原来开发在 Servlet 中的代码拆分了,一部分由 SpringMVC 完成,一部分由我们自己完成。

  2. SpringMVC 主要组件

    前端控制器 DispatcherServlet:接收请求、响应结果,相当于转发器,有了 DispatcherServlet 就减少了其它组件之间的耦合度。

    处理器映射器 HandlerMapping:根据请求的 URL 来查找 Handler。

    处理器适配器 HandlerAdapter:负责执行 Handler。

    处理器 Handler:处理业务逻辑的 Java 类(我们自己写的 Controller 类)。

    视图解析器 ViewResolver:进行视图的解析,根据视图逻辑名将 ModelAndView 解析成真正的视图(view) 。

    视图 View:View 是一个接口, 它的实现类支持不同的视图类型,如 jsp,freemarker, pdf 等。

  3. SpringMVC 的执行流程
image.png
  1. 用户发送请求到前端控制器(DispatcherServlet)。
  2. 前端控制器 ( DispatcherServlet ) 收到请求调用处理器映射器 (HandlerMapping),去查找处理器(Handler)。
  3. 处理器映射器(HandlerMapping)找到具体的处理器(可以根据 xml 配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给 DispatcherServlet。
  4. 前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)。
  5. 处理器适配器(HandlerAdapter)去调用自定义的处理器类(Controller)。
  6. 自定义的处理器类(Controller)将得到的参数进行处理并返回结果给处理器适配器(HandlerAdapter)。
  7. 处理器适配器 ( HandlerAdapter )将得到的结果返回给前端控制器 (DispatcherServlet)。
  8. 前端控制器(DispatcherServlet )将 ModelAndView 传给视图解析器 (ViewReslover)。
  9. 视图解析器(ViewReslover)将得到的参数从逻辑视图转换为物理视图并返回给前端控制器(DispatcherServlet)。
  10. 前端控制器(DispatcherServlet)调用物理视图进行渲染并返回。
  11. 前端控制器(DispatcherServlet)将渲染后的结果返回。

你可能感兴趣的:(SpringMVC 的执行流程)