SpringMVC的运行原理

  1. 核心组件:(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

  1. 当配置了mvc:annotation-driven/时,实际上创建了上面实现类的对象
  2. 还可能使用的组件或接口或类:

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: 字符编码过滤器

  1. 时序图(Sequence Diagram)

4.1 以时间点作为基本单位,观察每个时间点状态.
4.2 具体时序图

5.文字解释:这就是SpringMVC运行原理(给面试官说的)

当用户发起请求后,执行DiapacherServlet,如果是JSP直接调用jsp页面.如果不是JSP,DiapacherServlet调用HandlerMapping判断请求URL是否合法,如果URL不存在报错,如果URL存在使用HandlerAdapter调用具体的HandlerMethod,当HandlerMethod执行完成后会返回ModelAndView,会被ViewResovler解析,调用具体的物理视图.
最终响应给客户端浏览器.

SpringMVC的运行原理相关推荐

  1. 【SpringMVC】面试常见问题:总结 SpringMVC 运行原理

    请简述SpringMVC 运行原理: 如果在 web.xml 中设置 DispatcherServlet 的 <url-pattern> 为/时, 当用户发起请求, 请求一个控制器, 首先 ...

  2. java中MVC原理详解,SpringMVC运行原理,MVC的基本原理

    SpringMVC运行原理,MVC的基本原理 按照上边的执行流程图,我们可以看出一个SpringMVC整体的一个执行轮廓,下面我们具体来分析下 首先服务器接收到一个请求,匹配并调用了我们的前端控制器( ...

  3. springmvc项目在启动完成之后执行一次方法_SpringMVC运行原理

    springMVC主要有四大控件,其中有DispatcherServlet,hadlerMapping,HanlerAdapter,ModelAndView. springMVC的运行步骤大致是当客服 ...

  4. SpringBoot_web开发-SpringMVC自动配置原理

    我们自己分析Springboot的源码,里面有什么功能,第二个我们来参照官方文档,官方文档里面写了什么功能,我们看官方文档告诉我们自动配置了哪些,再来带大家来翻一翻源码,希望通过这一次的分析,后来的模 ...

  5. Servlet运行原理以及生命周期

    Servlet运行原理 Servlet生命周期定义了一个Servlet如何被加载.初始化,以及它怎样接收请求.响应请求,提供服务.在讨论Servlet生命周期之前,先让我们来看一下这几个方法: 1. ...

  6. ASP.NET运行原理

    一个ASP.NET的应用程序是开始于IIS的. 当你请求一个包含ASP.NET应用的网址时,IIS接受到请求(IIS是WEB服务守候进程),IIS收到请求后,会根据请求者请求的主机头或者IP或者端口号 ...

  7. Linux X Window System运行原理和启动过程

    本文主要说明X Window System的基本运行原理,其启动过程,及常见的跨网络运行X Window System. 一) 基本运行原理 X Window System采用C/S结构,但和我们常见 ...

  8. 10分钟了解Flutter跨平台运行原理!

    导语 | 本文将从选型.简介和运行原理三大部分为你介绍Flutter的相关概念,希望能站在框架设计和实现原理的高度,带领大家去理解Flutter区别其他跨平台解决方案的关键所在. 一.为什么选择Flu ...

  9. spark on yarn 完全分布式_Spark编程笔记(1)-架构基础与运行原理

    引言 根据IBM前首席执行官郭士纳的观点,IT领域每隔十五年就会迎来一 次重大变革 .当前我们正处于第三次信息浪潮(2010年前后),物联网.云计算和大数据技术突飞猛进. 信息爆炸是我们当前所需要解决 ...

最新文章

  1. Linux操作系统文件系统基础知识详解
  2. 实例讲解UML建模分析与设计
  3. 服务器中同一个【ip:port】可以多次accept的问题
  4. 关于apt-get remove 与 apt-get purge
  5. Sqlserver 数据库安全
  6. 终极JPA查询和技巧列表–第2部分
  7. 【项目管理】人力资源计划和组建项目团队
  8. android res目录下存放图片文件夹 i m h xh xxh
  9. win10远程桌面配置
  10. 原型与继承学习笔记3
  11. Java学习心得——整数太大的错误
  12. 程序员需要知道的地理知识
  13. 计算机考研人工智能方向,2022考研计算机学科研究方向:人工智能
  14. Kubernetes Pod 健康检查机制 LivenessProbe 与 ReadinessProbe
  15. Arrayfire E0992 命令行错误: 宏定义无效: AF_<CPU/CUDA/OPENCL>
  16. c:\windows\ ntdetect failed
  17. 有了这些好看的流程图模板,你也可以画出漂亮的流程图
  18. 啦啦啦啦啦 报道 报道
  19. 微软搜购诺基亚是这样的吗
  20. 商标被撤三了,重新注册有用吗?

热门文章

  1. 经典排序算法(6)——直接选择排序算法详解
  2. [2021.1.31多校省选模拟12]随机变换的子串(线段树维护分治/字符串/自动机思想)
  3. Educational Codeforces Round 77 (Rated for Div. 2) C. Infinite Fence 数论
  4. Codeforces Round #709 (Div. 1, based on Technocup 2021 Final Round) A. Basic Diplomacy
  5. Find 3-friendly Integers
  6. C. The Sports Festival
  7. P4301 [CQOI2013] 新Nim游戏
  8. HAPPY_TOGETHER_WEEK15_ENJOY
  9. YBTOJ:圈套问题(分治法、鸽笼原理)
  10. AT3857-[AGC020C]Median Sum【背包,bitset】