1、SpringMVC简介

  SpringMVC是Spring框架的一个模块。SpringMVC和Spring无需通过中间层进行整合。是一个轻量级的,基于请求响应的MVC框架。

  2.1、什么是MVC?

  mvc是一个设计模式,下图为MVC在 B/S 系统下的具体应用:

  **控制器:例如struts2中的filter,struts1中没有filter

  

  2.2、MVC框架要做哪些事情

1、将 URL 映射到 java 类或 java 类的方法中。

2、封装用户提交的数据

3、处理请求——调度相关的业务逻辑进行处理——封装响应的数据

4、将响应的数据进行渲染,jsp、htm、freemarker等

  2.3、SpringMVC 组件

  (1)前端控制器 DIspatcherServlet,作用:接受请求,响应结果(相当于转发器,中央处理器)

    有了 DIspatcherServlet,就减少了其他组件之间的耦合性。

  (2)处理器映射器 HandlerMapping,作用:根据请求的URL查找 Handler (Xml配置 和 注解配置)

  (3)处理器适配器  HandlerAdapter,作用:按照特定的规则(HandlerAdapter要求的规则)去执行 Handler 

  (4)处理器  Handler(需要程序员开发),编写 Handler 时按照 HandlerAdapter 的要求去做,这样适配器才可以正确执行 Handler

  (5)视图解析器  View Resolver,作用:进行视图解析,根据逻辑视图解析成真正的视图(SpringMVC中的View)

  (6)视图  View(需要程序员开发 jsp),View是一个接口,实现类支持不同的 View 类型(jsp,freemarker、pdf.....)

2.4、SpringMVC的工作原理图:

2.5、SpringMVC工作原理文字解释:

第一步:发起请求到 前端控制器(DIspatcherServlet)

第二步:前端控制器 请求 HandlerMapping 查找 Handler(可以根据 xml 配置、注解进行查找)

第三步:处理器映射器 HandlerMapping 向前端控制器返回 包含Handler的 执行链(HandlerExecutionChain)。

第四步:前端控制器 调用 处理器适配器 去执行 Handler

第五步:处理器适配器去执行 Handler

第六步:Handler 执行完成给 处理器适配器 返回 ModelAndView

第七步:处理器适配器 向 前端控制器 返回 ModelAndView(ModelAndView 是 SpringMVC 框架的一个底层对象,包括了 Model 和 View)

第八步:前端控制器 去请求 视图解析器 去进行视图解析(根据逻辑视图名解析成真正的视图——jsp)

第九步:视图解析器 向 前端控制器 返回 View

第十步:前端控制器 进行 视图渲染(将模型数据<在 ModelAndView 对象中>填充到 request 域)

第 十 一 步:前端控制器 向用户响应结果

Spring工作原理:初识SpringMVC的更多相关文章

  1. Spring工作原理与单例

    最近看到spring管理的bean为单例的,当它与web容器整合的时候始终搞不太清除,就网上搜索写资料, Tomcat与多线程, servlet是多线程执行的,多线程是容器提供的能力. servlet ...

  2. Spring工作原理及其作用

    1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作. 2.DispatcherServlet查询一个或多个Hand ...

  3. Spring工作原理

    一. IoC(Inversion of control): 控制反转1.IoC:概念:控制权由对象本身转向容器:由容器根据配置文件去创建实例并创建各个实例之间的依赖关系核心:bean工厂:在Sprin ...

  4. 面试问烂的 Spring AOP 原理、SpringMVC 过程(求求你别问了)

    Spring AOP ,SpringMVC ,这两个应该是国内面试必问题,网上有很多答案,其实背背就可以.但今天笔者带大家一起深入浅出源码,看看他的原理.以期让印象更加深刻,面试的时候游刃有余. Sp ...

  5. Spring工作原理及应用

    spring原理 内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建.调用对象,Spring就是在运行时 ...

  6. Spring学习之旅(四)Spring工作原理再探

    上篇博文对Spring的工作原理做了个大概的介绍,想看的同学请出门左转.今天详细说几点. (一)Spring IoC容器及其实例化与使用 Spring IoC容器负责Bean的实例化.配置和组装工作有 ...

  7. Spring学习之旅(三)Spring工作原理初探

    详细的废话相信很多书籍视频资料都已经很多了,这里说几个小编个人认为对于理解Spring框架很重要的点.欢迎批评指正. 1)Spring的控制反转 先说说“依赖”,在面向对象程序设计中,类A中用到了类B ...

  8. spring工作原理理解

    spring的工作原理 spring是作为一个容器存在的框架,可以加载spring web,spring mvc,spring orm,sprong aop,spring dao等框架和模块,其主要核 ...

  9. Spring 工作原理

    1.spring原理 内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建.调用对象,Spring就是在运 ...

随机推荐

  1. 从菜鸟到高手, HMS Core图像分割服务教你如何在复杂背景里精细抠图

    2021年以来,自动驾驶赛道进入爆发期,该行业成为大厂以及初创企业的必争之地.其中众多公司都采用了计算机视觉作为自动驾驶的技术底座,通过图像分割技术,汽车才能够有效理解道路场景,分清楚哪里是路,哪里是 ...

  2. 字符串压缩(一)之ZSTD

    前言 最近项目上有大量的字符串数据需要存储到内存,并且需要储存至一定时间,于是自然而然的想到了使用字符串压缩算法对"源串"进行压缩存储.由此触发了对一些优秀压缩算法的调研. 字符串 ...

  3. 【C#基础概念】字节顺序(大端、小端)

    字节顺序,又称端序或尾序(英語:Endianness),在计算机科学领域中,指電腦記憶體中或在数字通信链路中,组成多字节的字的字节的排列顺序. 例如假设上述变量x类型为int,位于地址0x100处,它 ...

  4. 动态语言运行时(DLR)

    前言 为了让C#.Visual Basic等.NET编程语言能具备动态编程语言的特性,.NET 4.0引入了一个"DLR(Dynamic Language Runtime:动态语言运行时)& ...

  5. Java基础--环境变量配置

    安装JDK配置编程或运行环境(必要) ①下载JDK 在下载页面中你需要选择接受许可,并根据自己的系统选择对应的版本,本文以 Window 64位系统为例: 根据安装提示一步一步安装完成. ②配置环境变 ...

  6. Qt:打包成可执行文件(exe文件)后出现Driver not Loaded的解决方法

    问题 在当前电脑上打包为exe可以正常执行,发送给另一台电脑后却无法执行,并且出现"Driver not loaded"的提示框. 可能原因 1.另一台电脑上没有MySQL(或ex ...

  7. Qt:QWidget

    0.说明 QWidget类是所有用户界面对象的基类. QWidget是用户界面的原子类.它接收鼠标.键盘和来自系统的其他事件,并在屏幕上将它们绘制出来.每个Widget都是矩形的,并按照Z-order ...

  8. Java应用层数据链路追踪(附优雅打印日志姿势)

    我是3y,一年CRUD经验用十年的markdown程序员‍常年被誉为优质八股文选手 今天来聊些大家都用得上的东西:数据链路追踪.之前引入了系统的监控来快速定位应用操作系统上的问题,而业务问题呢?在这篇 ...

  9. thinkphp 登录(未设置cookie+session)

    <?php namespace app\Admin\controller; use think\Controller; use think\Loader; use think\Request; ...

  10. C++ STL vector扩容原理分析

    扩容特点: 1)新增元素:vector通过一个连续的数组存放元素,如果集合已满,在新增数据的时候,就要分配一块更大的内存,将原来的数据复制过来,释放之前的内存,在插入新增的元素: 2)对vector的 ...