SpringMVC学习——对于SpringMVC的整体认识
文章目录
- 一、首先什么是SpringMVC?
- 二、同类的技术有哪些?
- 三、对比同类的优缺点是哪些?
- 四、SpringMVC的组成部分?
- 五、SpringMVC项目的架构图
一、首先什么是SpringMVC?
SpringMVC是一个基于MVC实现的web框架,用于替代传统的servlet。MVC全名是Model View Controller,是模型(model)——视图(view)——控制器(controller)的缩写。
二、同类的技术有哪些?
SpringMVC同类的技术要数Struts2
三、对比同类的优缺点是哪些?
对比Struts2的优势很明显:
1、拦截机制的不同,Struts2是类级别的拦截,SpringMVC是方法级别的拦截
2、底层架构的不同,Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC则是采用Servlet(DispatcherServlet)实现。
3、配置方面不同,SpringMVC和Spring是无缝结合的,相对于Struts2省却了很多配置,提高了开发效率符合当前敏捷开发思路。
四、SpringMVC的组成部分?
1、前端控制器(DispatcherServlet)——框架已提供不需要开发
中央处理器,负责请求的转发,相当于一个请求转发器
2、处理器映射器(HandlerMapping)——框架已提供不需要开发
接收到前端控制器发送来的url后,对url进行匹配,返回给前端控制器一个处理器执行链(HandlerExecuteChain)
3、处理器适配器(HandlerAdapter)——框架已提供不需要开发
接收到前端控制器要寻找的Handler,选择对应的Handler进行执行,执行后返回给前端控制器ModelAndView
4、处理器(Handler)——需要程序员开发
接受前端控制器发送来的任务,返回ModelAndView给处理器适配器
5、视图解析器(ViewResolver)——框架已提供不需要开发
接受前端控制器发送来的逻辑视图(ModelAndView),转换成真正的视图,返还给前端控制器供其渲染
6、视图(View)——需要程序员开发
经过视图解析器生成的视图(如JSP、Excel、Freemarker、PDF等等),经前端控制器渲染后发送到请求方
五、SpringMVC项目的架构图
SpringMVC架构原理解析如下:
第一步:客户端发起请求到前端控制器(DispatcherServlet)
第二步:前端控制器请求HandlerMapping处理器映射器去查找相应的Handler,其中映射器可以通过XML配置也可通过注解实现
第三步:处理器映射器对url进行匹配后返回给前端控制器执行链(HandlerExecutionChain)
第四步:下一步开始请求执行Handler,请求到了处理器适配器(HandlerAdapter)去适配相应的Handler方法
第五步:Handler开始执行
第六步:Handler执行完返回ModelAndView给处理器适配器(HandlerAdapter)
第七步:处理器适配器向前端控制器返回ModelAndView对象
第八步:前端控制器把请求发送到视图解析器(ViewResolver)进行视图解析,根据逻辑视图名解析成真正的视图(jsp)
第九步:视图解析器向前端控制器返回View
第十步:前端控制器进行视图渲染,视图渲染将视图模型数据(在ModelAndView对象中)填充到request域中
第十一步:前端控制器向用户响应结果
总结:
今天先大体上介绍了什么是SpringMVC,并且介绍了请求的流转流程,后续会陆续更新SpringMVC的各个模块以及用法
SpringMVC学习——对于SpringMVC的整体认识相关推荐
- (转)SpringMVC学习(一)——SpringMVC介绍与入门
http://blog.csdn.net/yerenyuan_pku/article/details/72231272 SpringMVC介绍 SpringMVC是什么? SpringMVC和Stru ...
- (转)SpringMVC学习(三)——SpringMVC的配置文件
http://blog.csdn.net/yerenyuan_pku/article/details/72231527 读者阅读过SpringMVC学习(一)--SpringMVC介绍与入门这篇文章后 ...
- (转)SpringMVC学习(六)——SpringMVC高级参数绑定与@RequestMapping注解
http://blog.csdn.net/yerenyuan_pku/article/details/72511749 高级参数绑定 现在进入SpringMVC高级参数绑定的学习,本文所有案例代码的编 ...
- (转)SpringMVC学习(五)——SpringMVC的参数绑定
http://blog.csdn.net/yerenyuan_pku/article/details/72511611 SpringMVC中的参数绑定还是蛮重要的,所以单独开一篇文章来讲解.本文所有案 ...
- SpringMVC学习(二)——SpringMVC架构及组件(及其运行原理)
相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上一篇文章中SpringMVC的处理流程吗? 这个图大致描述了SpringMVC的整个处理流程,这个流程图还是相对来 ...
- (转)SpringMVC学习(二)——SpringMVC架构及组件
http://blog.csdn.net/yerenyuan_pku/article/details/72231385 相信大家通过前文的学习,已经对SpringMVC这个框架多少有些理解了.还记得上 ...
- springMVC学习(7)-springMVC校验
一.校验理解: 对于安全要求较高点建议在服务端进行校验. 控制层conroller:校验页面请求的参数的合法性.在服务端控制层conroller校验,不区分客户端类型(浏览器.手机客户端.远程调用) ...
- (转)SpringMVC学习(十一)——SpringMVC实现Resultful服务
http://blog.csdn.net/yerenyuan_pku/article/details/72514034 Restful就是一个资源定位及资源操作的风格,不是标准也不是协议,只是一种风格 ...
- (转)SpringMVC学习(十)——SpringMVC与前台的json数据交互
http://blog.csdn.net/yerenyuan_pku/article/details/72514022 json数据格式在接口调用中.html页面中比较常用,json格式比较简单,解析 ...
最新文章
- R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将图像、文本、表格组合在一起展示
- 是时候对XSLT说“Goodbye”了吗?
- 【译】区块链是如何工作的——用JavaScript演示
- 用 pycharm 可视化管理 sqlite 数据库
- Hibernate学习(1):查询demo
- 【编辑器】Notepad++相关
- 中国首家干线物流联合创新中心成立,实施自动驾驶数据共享是否可行?...
- 论SVGA直播礼物特效对直播平台的重要性
- 图像/视频无损放大,用一个工具就够了
- 如何讲网页保存为pdf文件
- 南阳oj 韩信点兵
- 交换机,路由器上的 S口 F口 E口 Gi是什么?
- mumu的adb_如何使用网易mumu模拟器调试安卓程序?
- Keepalived+LVS+MySQL双主复制实现读写负载均衡及高可用
- 二维码活码的诞生、技术原理及使用场景
- 【 已解决 】iPhone 越狱后用爱思助手刷机出现 NORdata,无法刷机
- 敏捷实践不可忽略的环节
- 新买的笔记本电脑需要测试什么软件,新买的笔记本电脑一定不要着急用,先做好这五步,才能放心使用...
- Windows开机提示:“Windows 未能启动。原因可能是最近更改了硬件或软件。解决此问题的步骤:”
- Word文档里有空白但无法打字怎么回事?
热门文章
- ALEIDoc EDI(5)--Inbound Function
- 2015年我国互联网行业概况及现状分析
- 会计转行SAP FICO实施顾问,百万年薪等你来挑战!
- CO CCA-作业分割优先级
- 做了这么久数据分析没收获,原来一直在做“伪数据分析”
- cf手游服务器维护19年9月19,神雕侠侣2手游9月19日停服维护公告_神雕侠侣2手游9月19日更新了什么_玩游戏网...
- sql 2008服务器响应慢,SQL Server 2008停止响应后,Web服务器不活动
- 在计算机中常用的数据表示方法有哪些,数据在计算机中的表示方法
- oracle 数字不用,oracle – Plsql将数字(货币)拼写为意大利货币而不用硬编码的翻译编号...
- Python re 模块findall() 函数返回值展现方式详解