Spring MVC的执行流程

编程知识 更新时间:2023-04-05 19:15:16

Spring MVC的执行流程

Spring MVC的执行流程如图所示:

执行流程:

  1. 用户点击某个请求路径,发起一个HTTP request请求,该请求会被提交到Dispatcher Servlet(前端控制器);
  2. 由Dispatcher Servlet请求一个或多个Handler Mapping(处理器映射器),并返回一个执行链(Handler Execution Chain);
  3. Dispatcher Servlet将Handler Mapping返回的执行链中的Handler信息发送给Handler Adapter(处理器适配器);
  4. HandlerAdapter 根据 Handler 信息找到并执行相应的 Handler(常称为 Controller);
  5. Handler 执行完毕后会返回给 HandlerAdapter 一个 ModelAndView 对象(Spring MVC的底层对象,包括 Model 数据模型和 View 视图信息);
  6. HandlerAdapter 接收到 ModelAndView 对象后,将其返回给 DispatcherServlet ;
  7. DispatcherServlet 接收到 ModelAndView 对象后,会请求 ViewResolver(视图解析器)对视图进行解析;
  8. ViewResolver 根据 View 信息匹配到相应的视图结果,并返回给 DispatcherServlet;
  9. DispatcherServlet 接收到具体的 View 视图后,进行视图渲染,将 Model 中的模型数据填充到 View 视图中的 request 域,生成最终的 View(视图);
  10. 视图负责将结果显示到浏览器(客户端)

Spring MVC接口

Spring MVC 涉及到的组件有 DispatcherServlet(前端控制器)、HandlerMapping(处理器映射器)、HandlerAdapter(处理器适配器)、Handler(处理器)、ViewResolver(视图解析器)和 View(视图)。下面对各个组件的功能说明如下。

1)DispatcherServlet(不需要程序员开发)

DispatcherServlet 是前端控制器,从图 1 可以看出,Spring MVC 的所有请求都要经过 DispatcherServlet 来统一分发。DispatcherServlet 相当于一个转发器或中央处理器,控制整个流程的执行,对各个组件进行统一调度,以降低组件之间的耦合性,有利于组件之间的拓展。

2)Handler Mapping(不需要程序员开发)

HandlerMapping 是处理器映射器,其作用是根据请求的 URL 路径,通过注解或者 XML 配置,寻找匹配的处理器(Handler)信息。

3)Handler Adapter

HandlerAdapter 是处理器适配器,其作用是根据映射器找到的处理器(Handler)信息,按照特定规则执行相关的处理器(Handler)。

4)Handler(Controller 需要程序员开发)

Handler 是处理器,和 Java Servlet 扮演的角色一致。其作用是执行相关的请求处理逻辑,并返回相应的数据和视图信息,将其封装至 ModelAndView 对象中。

5)View Resolver(不需要程序员开发)

View Resolver 是视图解析器,其作用是进行解析操作,通过 ModelAndView 对象中的 View 信息将逻辑视图名解析成真正的视图 View(如通过一个 JSP 路径返回一个真正的 JSP 页面)。

6)View(需要程序员开发jsp)

View 是视图,其本身是一个接口,实现类支持不同的 View 类型(JSP、FreeMarker、Excel 等)。

快速记忆技巧:

核心控制器捕获请求;

通过Handler Mapping 查找Handler;

执行Handler返回ModelAndView由Handler Adapter交给Dispatcher Servlet;

将ModelAndView传给ViewReslover解析后返回具体View;

DispatcherServlet对View进行渲染视图(即将模型数据model填充至视图中)返回给用户。

参考:
1.http://c.biancheng/spring_mvc/process.html
2.https://cloud.tencent/developer/article/1415712

更多推荐

Spring MVC的执行流程

本文发布于:2023-04-05 19:15:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/341d94e303c45809cb8180d2c98078dc.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:流程   Spring   MVC

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 47205文章数
  • 14阅读数
  • 0评论数