springMvc处理请求的流程,在面试题中也是常常被提及的一部分知识,所以就给大家详细整理了一下,供大家了解或者温习巩固~~一、SpringMvc请求流程:
文章图片
流程图中的序号分别表示的意思如下:
1、前端发送请求被前端控制器DispatcherServlet拦截
2、前端控制器调用处理器映射HandlerMapping对请求URL进行解析,解析之后返回给前端控制器
3、前端控制器调用处理器适配器处理调用链
4、处理器适配器基于反射通过适配器设计模式完成处理器(控制器)的调用,处理用户请求
5、处理器适配器将控制器返回的视图和数据信息封装成ModelAndVIew响应给前端控制器
6、前端控制器调用视图解析器ViewResolve对ModelAndView进行解析,将解析结果(视图资源和数据)响应给前端控制器
7、前端控制器调用视图view组件将数据进行渲染,将渲染的结果(静态资源)响应给前端控制器
8、前端控制器响应用户请求
二、SpringMvc的核心组件 1、DispatcherServlet前端控制器,总控制器,由SpringMvc提供的,无需工程师开发;
作用:接收请求,协同各组件工作,响应请求
2、HandleMapping处理器映射器,也是由SpringMvc提供的,无需工程师开发;可以自定义配置
【java|SpringMvc请求流程详解及核心组件(面试题)】作用:负责用户根据的url找到对应的Handle(控制器)
3、HandleAdapter处理器适配器,也是由SpringMvc提供的,无需工程师开发;
作用:根据HandleMapping(处理器映射)解析用户的请求的调用链,通过适配器模式完成Handle(控制器)的调用
4、Handle(控制器/处理器),是由工程师根据业务需求进行开发的;
作用:处理请求
5、ModelAndView(模型和数据),由SpringMvc提供的,无需工程师开发;
作用:用于封装处理器返回的数据和响应的视图
6、ViewResolver(视图解析器),由SpringMvc提供的,无需工程师开发;可以自定义配置
作用:对ModelAndView进行解析
7、View(视图),由SpringMvc提供的,无需工程师开发;
作用:完成数据的渲染
三、处理器映射器自定义配置:不同的处理器映射器配置对URL处理方式也不相同,使用对应的处理器映射器之后我们的前端请求规则也需要发生相应的变化
BeanNameHandleMapping:根据控制器id来访问控制器 |
SimpleUrlHandlerMapping:根据控制器配置的路径(默认的) |
- 在SpringMvc配置文件中通过bean标签声明处理映射器
- 配置BeanNameHandleMapping
四、视图解析器自定义配置:
UrlBasedViewResolver |
InternalResourceViewResolver |
id名字必须是“viewResolver”,配置 UrlBasedViewResolver的时候需要添加jstl依赖
4.2 InternalResourceViewResolver的配置:
推荐阅读
- Spring|Spring MVC学习(3)—Spring MVC中的核心组件以及请求的执行流程
- python|他来了!性能吊打 Node.js 和 Deno 的新一代 javaScript 运行时!
- javascript|性能吊打 Node.js 和 Deno 的新一代 javaScript 运行时-Bun.js
- Java刷题记录|【刷题记录15】Java工程师丨腾讯面试真题(3)
- 编程语言|介绍 Docker 的多阶段构建功能
- Java基础-从0到1|【一起学Java-第八篇】Java语言类的特性详解
- 云原生|【云原生丨Docker系列13】Docker 的多阶段构建详解
- c++|c++17操作文件并解析目录
- YY|【C语言】通讯录《静态内存版本》