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 @   RS_mine  阅读(706)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示