Spring工作原理:初识SpringMVC
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的更多相关文章
- Spring工作原理与单例
最近看到spring管理的bean为单例的,当它与web容器整合的时候始终搞不太清除,就网上搜索写资料, Tomcat与多线程, servlet是多线程执行的,多线程是容器提供的能力. servlet ...
- Spring工作原理及其作用
1.springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作. 2.DispatcherServlet查询一个或多个Hand ...
- Spring工作原理
一. IoC(Inversion of control): 控制反转1.IoC:概念:控制权由对象本身转向容器:由容器根据配置文件去创建实例并创建各个实例之间的依赖关系核心:bean工厂:在Sprin ...
- 面试问烂的 Spring AOP 原理、SpringMVC 过程(求求你别问了)
Spring AOP ,SpringMVC ,这两个应该是国内面试必问题,网上有很多答案,其实背背就可以.但今天笔者带大家一起深入浅出源码,看看他的原理.以期让印象更加深刻,面试的时候游刃有余. Sp ...
- Spring工作原理及应用
spring原理 内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建.调用对象,Spring就是在运行时 ...
- Spring学习之旅(四)Spring工作原理再探
上篇博文对Spring的工作原理做了个大概的介绍,想看的同学请出门左转.今天详细说几点. (一)Spring IoC容器及其实例化与使用 Spring IoC容器负责Bean的实例化.配置和组装工作有 ...
- Spring学习之旅(三)Spring工作原理初探
详细的废话相信很多书籍视频资料都已经很多了,这里说几个小编个人认为对于理解Spring框架很重要的点.欢迎批评指正. 1)Spring的控制反转 先说说“依赖”,在面向对象程序设计中,类A中用到了类B ...
- spring工作原理理解
spring的工作原理 spring是作为一个容器存在的框架,可以加载spring web,spring mvc,spring orm,sprong aop,spring dao等框架和模块,其主要核 ...
- Spring 工作原理
1.spring原理 内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建.调用对象,Spring就是在运 ...
随机推荐
- 一文带你盘点市场上主流的BI产品主要有哪些
随着时代的发展,商业智能使数据分析和数据可视化的门槛不断降低,使得企业各级人员都能进行数据分析,从而加深业务洞察,推动企业发展.而在数据分析领域,BI产品发挥了十分重要的作用. 市场需求变化日益频繁 ...
- 简单excel饼状图怎么做,bi工具怎么做饼状图
饼状图是为了在一个整体体现个体所占的比例,比如一块蛋糕每人各分多大份.了解了饼状图的含义,就来学习饼状图怎么做吧. 首先,我们准备excel表格饼状图的初始数据 然后选择excel表格上方的插入,选择 ...
- 如何利用Smartbi做数据分析:2018内5月热销乘用车分析报告
在2018年第一季度热销乘用车分析报告中,SUV以总体销量15.4%的同比增长率让人不可小觑,Smartbi刚得到5月分析的数据就迫不及待的来看看是否热度不减,结果在5月这个所谓汽车销售淡季,轿车以9 ...
- 用图帮你了解https的原理
Http存在的问题 上过网的朋友都知道,网络是非常不安全的.尤其是公共场所很多免费的wifi,或许只是攻击者的一个诱饵.还有大家平时喜欢用的万能钥匙,等等.那我们平时上网可能会存在哪些风险呢? 泄密, ...
- numpy.random模块用法小结
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9751471.html 1.np.random.random()函数参数 np.random.r ...
- ComboBox控件绑定数据源后,添加'请选择'或'全部'
ComboBox控件绑定数据源后,添加'请选择'或'全部' 当使用ComboBox控件绑定数据源之后,通过Items 属性添加的数据是无效的,此时如果要在所有选项前添加 选项 ,则需要考虑从数据源下手 ...
- Vue基础知识的巩固与学习
生命周期的解析和应用: Vue 实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom→渲染.更新→渲染.卸载等一系列过程,我们称这是 Vue 的生命周期.通俗说就是 Vue 实 ...
- tp5 终端命令总结
D:\PHP\phpstudy_pro\WWW\1906A\tp5>php think build --module examTest Successed D:\PHP\phpstudy_pro ...
- eval()计算某个字符串,js和jquery都可以使用
实例 执行JavaScript代码或表达式: <script>eval("x=10;y=20;document.write(x*y)");document.write( ...
- 1、mysql数据库的数据目录结构
查看mysql的主要目录结构 通过命名查看mysql的目录结构:find / -name mysql 1.1数据库文件的存放路径 MySQL数据库文件的存放路径:/var/lib/mysql/ 1.2 ...