SpringMVC的执行流程

一、什么是SpringMVC?

  Spring MVC 是一个用于构建 Web 应用程序的 Java 框架。它遵循模型-视图-控制器设计模式。它实现了核心 spring 框架的所有基本功能,如控制反转、依赖注入。Spring MVC在DispatcherServlet的帮助下为在Spring框架中使用MVC提供了一个优雅的解决方案。在这里,DispatcherServlet是一个接收传入请求并将其映射到正确资源(如控制器、模型和视图)的类。

  SpringMVC也是spring的一个后续产品,换句话说就是在spring原有的基础上,又提供了web应用的MVC模块,其中M表示Model、V表示View、C表示Controller,下图便是SpringMVC的简单流程图。

   这里简单对上图的几个模块进行一个解释:

  Model:模型包含应用程序的数据。数据可以是单个对象或对象的集合。

  View:视图以特定格式表示提供的信息。一般使用JSP+JSTL来创建视图页面。虽然spring也支持Apache Velocity、Thymeleaf和FreeMarker等其他视图技术。

  Controller:控制器包含应用程序的业务逻辑。在这里,@Controller 注释用于将类标记为控制器。

  Front Controller:在 Spring Web MVC 中,DispatcherServlet 类用作前端控制器。它负责管理 Spring MVC 应用程序的流程。

二、SpringMVC的工作流程

 

可以看到这里分为大致11个步骤,这11个步骤的任务是这样的:

​ 1、用户发送请求(url)至前端控制器DispatcherServlet;

​ 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器来获取handler;

​ 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;

​ 4、DispatcherServlet调用HandlerAdapter处理器适配器;

​ 5、 HandlerAdapter经过适配调用具体的处理器(Handler / Controller,也叫后端控制器);

​ 6、Controller执行完成返回ModelAndView;

​ 7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet;

​ 8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器进行解析;

​ 9、 ViewReslover解析后返回具体View,这个view不是完整的,仅仅是一个页面(视图)名字,且没有后缀名;

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

​ 11、 DispatcherServlet响应用户。

图中可以看到,DispatcherServlet(前端控制器)占据了很大的一部分,事实也是这样,springMVC中,DispatcherServlet(其本质就是一个Serverlet)是他的核心。

posted @ 2023-06-06 14:21  RS_mine  阅读(724)  评论(0)    收藏  举报