面试题-简单介绍 Spring MVC 执行流程或者Spring MVC的工作原理
摘要 简单介绍一下当用户在客户端发起请求后,Spring MVC 的执行流程,提升自己对Spring框架的认知层次。一言以蔽之,解答【Spring MVC的工作原理是什么】,这是一个热点面试题。
Spring Web 框架是围绕前端控制器DispatcherServlet设计的,DispatcherServlet是servlet接口的一个实现类,主要用于接收客户端符合要求的请求并将服务端处理结果发送至客户端。
简述Spring MVC的工作内容:
- 服务端接收用户请求;
- 指定应用程序实现客户需求;
- 将应用程序处理的结果渲染成视图;
- 客户端响应用户请求(回传渲染后的视图)。
执行流程
Spring MVC执行流程:


1、前端控制器捕获用户请求。用户向服务器发送请求,请求被 Spring 前端控制器DispatcherServlet 捕获。
2、查找Handler。 DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据此URI调用处理器映射器HandlerMapping获得该Handler配置的所有相关的对象(包括 Handler对象以及Handler对象对应的拦截器),最后以 HandlerExecutionChain对象的形式返回。
HandlerMapping是撮合URI和Method的红娘,在Spring MVC体系结构中有着举足轻重的地位,充当着配置URI和Controller中Method之间映射关系的角色。一个URI和一个可执行的Method通常是一一映射的关系。
3、Controller执行完成并返回 ModelAndView 对象。DispatcherServlet根据获得的 Handler,匹配一个合适的处理器适配器HandlerAdapter。HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。Controller执行完成后,向 DispatcherServlet 返回一个 ModelAndView 对象。
4、选择视图解析器。DispatcherServlet 根据返回的 ModelAndView,选择一个适合的视图解析器 ViewResolver(必须是已经注册到 Spring 容器中的 ViewResolver) 。
5、通过视图解析器渲染并返回视图。通过 ViewResolver 结合 Model 和 View 渲染视图(即将模型数据Model填充至视图中),DispatcherServlet 将渲染结果传递给客户端。其中的View是视图名称,用于在视图解析器中查找视图。
客户端得到响应,视图可能是一个普通的HTML页面,也可以是XML或JSON字符串,还可以是一张图片或者一个PDF文件。
小结
以上就是Spring MVC 的工作流程,欢迎点赞阅读,一同学习交流;若有疑问,请在文章下方留下你的神评妙论!
Reference
- https://developer.aliyun.com/article/522184
- https://www.cnblogs.com/beichenroot/p/10994001.html
- https://www.bilibili.com/read/cv6900356/
面试题-简单介绍 Spring MVC 执行流程或者Spring MVC的工作原理的更多相关文章
- 一文读懂Spring MVC执行流程
说到Spring MVC执行流程,网上有很多这方面的文章介绍,但是都不太详细,作为一个初学者去读会有许多不理解的地方,今天这篇文章记录一下我学习Spring MVC的心得体会 话不多说,先上图: ...
- Java——一文读懂Spring MVC执行流程
说到Spring MVC执行流程,网上有很多这方面的文章介绍,但是都不太详细,作为一个初学者去读会有许多不理解的地方,今天这篇文章记录一下我学习Spring MVC的心得体会 话不多说,先上图: Sp ...
- Spring Boot 揭秘与实战 源码分析 - 工作原理剖析
文章目录 1. EnableAutoConfiguration 帮助我们做了什么 2. 配置参数类 – FreeMarkerProperties 3. 自动配置类 – FreeMarkerAutoCo ...
- s2sh的MVC执行流程和执行原理
=======================执行流程 1. 从页面开始,提交表单或者点击链接会触发一个action 2. action交给struts2处理,读取src目录struts.xml文件, ...
- Spring高级特性之三:@Enable*注解的工作原理
Spring Boot中阐述热插拔技术的时候,简单地提及@Enable*注解.随着多种框架的应用及深入了解,@Enable*这个注解在各种框架中应用相当普及. 那么@Enable*注解工作原理是怎么样 ...
- Spring MVC执行流程
SpringMVC是隶属于Spring Web中的一部分, 属于表现层的框架. 其使用了MVC架构模式的思想, 将Web层进行职责解耦, 使用请求-响应模型简化Web开发 SpringMVC通过中央调 ...
- ASP.NET MVC 执行流程介绍
Routing 组件 Controller Controller中可用的ActionResult MVC-View(使用的抽象工厂模式的视图引擎) 视图模型
- Spring启动执行流程梳理
注:本文梳理启动流程使用的Spring版本:4.0.2.RELEASE 使用spring配置,都需要在web.xml中配置一个spring的监听器和启动参数(context-param),如下: &l ...
- MVC系统学习1—MVC执行流程
用MVC来做开发也有一段时间了,但是感觉一直没入门,就徘徊在似懂非懂的层次,和去年刚毕业学习WebForm时一样,当时通过张子阳老兄的几篇文章,明白了请求处理流程,页面生命周期才真正明白了WebFor ...
- 03 spring security执行流程分析
spring security主要是依赖一系列的Filter来实现权限验证的,责任链设计模式是跑不了的.下面简单记录一下spring操作这些Filter的过程. 1. WebSecurityConfi ...
随机推荐
- php批量删除记录
<?php $arr = $_POST["item"]; $db = new mysqli("localhost","root",&q ...
- 修改docker的默认存储位置及镜像存储位置
前言 Docker 默认安装的情况下,会使用 /var/lib/docker/ 目录作为存储目录,用以存放拉取的镜像和创建的容器等. 不过由于此目录一般都位于系统盘,遇到系统盘比较小,而镜像和容器多了 ...
- 如何写自己的springboot starter?自动装配原理是什么?
如何写自己的springboot starter?自动装配原理是什么? 官方文档地址:https://docs.spring.io/spring-boot/docs/2.6.13/reference/ ...
- OpenHarmony 开源鸿蒙北向开发——hdc工具安装
hdc(OpenHarmony Device Connector)是为开发人员提供的用于设备连接调试的命令行工具,该工具需支持部署在 Windows/Linux/Mac 等系统上与 OpenHar ...
- MOS管的引脚,G、S、D分别代表什么?
引脚解析: G:gate 栅极,N沟道的电源一般接在D. S:source 源极,输出S,P沟道的电源一般接在S. D:drain 漏极,输出D.增强耗尽接法基本一样. mos管是金属(metal)- ...
- 【Web】Servlet基本概念
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据, ...
- 流式计算(五)-Flink核心概念
一手资料,完全来自官网,直接参考英文过来的,并加了一些自己的理解,希望能让看官君了解点什么,足矣. 环境:Flink1.9.1 难度:新手--战士--老兵--大师 目标: 理解Flink的计算模型 认 ...
- spring_声明式事务: @Transactional
例子. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://ww ...
- 微信公众号-自定义微信分享(vue)(JS-SDK)
1.需求描述 日常公众号开发中,业务部门对于微信内置分享(右上角->分享到朋友等)效果不太满意,需要我们自定义相关分享效果 1.1微信默认分享效果展示 1.2通过自定义分享后效果展示 1.3微信 ...
- 用ResourceHacker修改EXE图标
1.打开ResourceHacker.exe 2.点击文件-打开-选择你需要修改的exe文件 3.点击操作-添加图像或二进制文件 4.点击选择文件-选择ico图标-添加资源 5.点击绿色保存图标 6. ...