SpringMVC的运行原理
SpringMVC的运行原理
- 核心组件:(SpringMVC 四大组件)
1.1 DispatchServlet: Servlet分发器,整个SPringMVC框架入口.
1.2 HandlerMapping:寻找URL所请求的HandlerMethod,找@RequestMapping()
1.2.1 使用实现类DefaultAnnotationHandlerMapping实际工作.
1.3 HandlerAdapter:实际调用HandlerMethod的组件.
1.3.1 使用实现类AnnotationMethodHandlerAdapter
1.4 ViewResovler:视图解析器.作用解析HandlerMethod返回值.把逻辑视图转换为需要调用的物理视图.
1.4.1 自定义时:InternalResourceViewResolver
- 当配置了mvc:annotation-driven/时,实际上创建了上面实现类的对象
- 还可能使用的组件或接口或类:
3.1 Controller : 控制器类
3.2 HandlerMethod: 控制器方法
3.3 View: 视图
3.4 Model: 模型
3.5 ModelAndView:模型和视图.SpringMVC所有HandlerMethod最终都会转换为ModelAndView
3.6 HandlerInterceptor: 拦截器
3.7 HandlerExceptionResolver:异常映射解析器.
3.8 MultipartResolver: Multipart解析器
3.9 CharacterEncodingFilter: 字符编码过滤器
- 时序图(Sequence Diagram)
4.1 以时间点作为基本单位,观察每个时间点状态.
4.2 具体时序图
5.文字解释:这就是SpringMVC运行原理(给面试官说的)
当用户发起请求后,执行DiapacherServlet,如果是JSP直接调用jsp页面.如果不是JSP,DiapacherServlet调用HandlerMapping判断请求URL是否合法,如果URL不存在报错,如果URL存在使用HandlerAdapter调用具体的HandlerMethod,当HandlerMethod执行完成后会返回ModelAndView,会被ViewResovler解析,调用具体的物理视图.
最终响应给客户端浏览器.
SpringMVC的运行原理相关推荐
- 【SpringMVC】面试常见问题:总结 SpringMVC 运行原理
请简述SpringMVC 运行原理: 如果在 web.xml 中设置 DispatcherServlet 的 <url-pattern> 为/时, 当用户发起请求, 请求一个控制器, 首先 ...
- java中MVC原理详解,SpringMVC运行原理,MVC的基本原理
SpringMVC运行原理,MVC的基本原理 按照上边的执行流程图,我们可以看出一个SpringMVC整体的一个执行轮廓,下面我们具体来分析下 首先服务器接收到一个请求,匹配并调用了我们的前端控制器( ...
- springmvc项目在启动完成之后执行一次方法_SpringMVC运行原理
springMVC主要有四大控件,其中有DispatcherServlet,hadlerMapping,HanlerAdapter,ModelAndView. springMVC的运行步骤大致是当客服 ...
- SpringBoot_web开发-SpringMVC自动配置原理
我们自己分析Springboot的源码,里面有什么功能,第二个我们来参照官方文档,官方文档里面写了什么功能,我们看官方文档告诉我们自动配置了哪些,再来带大家来翻一翻源码,希望通过这一次的分析,后来的模 ...
- Servlet运行原理以及生命周期
Servlet运行原理 Servlet生命周期定义了一个Servlet如何被加载.初始化,以及它怎样接收请求.响应请求,提供服务.在讨论Servlet生命周期之前,先让我们来看一下这几个方法: 1. ...
- ASP.NET运行原理
一个ASP.NET的应用程序是开始于IIS的. 当你请求一个包含ASP.NET应用的网址时,IIS接受到请求(IIS是WEB服务守候进程),IIS收到请求后,会根据请求者请求的主机头或者IP或者端口号 ...
- Linux X Window System运行原理和启动过程
本文主要说明X Window System的基本运行原理,其启动过程,及常见的跨网络运行X Window System. 一) 基本运行原理 X Window System采用C/S结构,但和我们常见 ...
- 10分钟了解Flutter跨平台运行原理!
导语 | 本文将从选型.简介和运行原理三大部分为你介绍Flutter的相关概念,希望能站在框架设计和实现原理的高度,带领大家去理解Flutter区别其他跨平台解决方案的关键所在. 一.为什么选择Flu ...
- spark on yarn 完全分布式_Spark编程笔记(1)-架构基础与运行原理
引言 根据IBM前首席执行官郭士纳的观点,IT领域每隔十五年就会迎来一 次重大变革 .当前我们正处于第三次信息浪潮(2010年前后),物联网.云计算和大数据技术突飞猛进. 信息爆炸是我们当前所需要解决 ...
最新文章
- Linux操作系统文件系统基础知识详解
- 实例讲解UML建模分析与设计
- 服务器中同一个【ip:port】可以多次accept的问题
- 关于apt-get remove 与 apt-get purge
- Sqlserver 数据库安全
- 终极JPA查询和技巧列表–第2部分
- 【项目管理】人力资源计划和组建项目团队
- android res目录下存放图片文件夹 i m h xh xxh
- win10远程桌面配置
- 原型与继承学习笔记3
- Java学习心得——整数太大的错误
- 程序员需要知道的地理知识
- 计算机考研人工智能方向,2022考研计算机学科研究方向:人工智能
- Kubernetes Pod 健康检查机制 LivenessProbe 与 ReadinessProbe
- Arrayfire E0992 命令行错误: 宏定义无效: AF_<CPU/CUDA/OPENCL>
- c:\windows\ ntdetect failed
- 有了这些好看的流程图模板,你也可以画出漂亮的流程图
- 啦啦啦啦啦 报道 报道
- 微软搜购诺基亚是这样的吗
- 商标被撤三了,重新注册有用吗?
热门文章
- 经典排序算法(6)——直接选择排序算法详解
- [2021.1.31多校省选模拟12]随机变换的子串(线段树维护分治/字符串/自动机思想)
- Educational Codeforces Round 77 (Rated for Div. 2) C. Infinite Fence 数论
- Codeforces Round #709 (Div. 1, based on Technocup 2021 Final Round) A. Basic Diplomacy
- Find 3-friendly Integers
- C. The Sports Festival
- P4301 [CQOI2013] 新Nim游戏
- HAPPY_TOGETHER_WEEK15_ENJOY
- YBTOJ:圈套问题(分治法、鸽笼原理)
- AT3857-[AGC020C]Median Sum【背包,bitset】