javascript
SpringMVC学习——对于SpringMVC的整体认识
文章目錄
- 一、首先什么是SpringMVC?
- 二、同類的技術(shù)有哪些?
- 三、對比同類的優(yōu)缺點是哪些?
- 四、SpringMVC的組成部分?
- 五、SpringMVC項目的架構(gòu)圖
一、首先什么是SpringMVC?
SpringMVC是一個基于MVC實現(xiàn)的web框架,用于替代傳統(tǒng)的servlet。MVC全名是Model View Controller,是模型(model)——視圖(view)——控制器(controller)的縮寫。
二、同類的技術(shù)有哪些?
SpringMVC同類的技術(shù)要數(shù)Struts2
三、對比同類的優(yōu)缺點是哪些?
對比Struts2的優(yōu)勢很明顯:
1、攔截機(jī)制的不同,Struts2是類級別的攔截,SpringMVC是方法級別的攔截
2、底層架構(gòu)的不同,Struts2采用Filter(StrutsPrepareAndExecuteFilter)實現(xiàn),SpringMVC則是采用Servlet(DispatcherServlet)實現(xiàn)。
3、配置方面不同,SpringMVC和Spring是無縫結(jié)合的,相對于Struts2省卻了很多配置,提高了開發(fā)效率符合當(dāng)前敏捷開發(fā)思路。
四、SpringMVC的組成部分?
1、前端控制器(DispatcherServlet)——框架已提供不需要開發(fā)
中央處理器,負(fù)責(zé)請求的轉(zhuǎn)發(fā),相當(dāng)于一個請求轉(zhuǎn)發(fā)器
2、處理器映射器(HandlerMapping)——框架已提供不需要開發(fā)
接收到前端控制器發(fā)送來的url后,對url進(jìn)行匹配,返回給前端控制器一個處理器執(zhí)行鏈(HandlerExecuteChain)
3、處理器適配器(HandlerAdapter)——框架已提供不需要開發(fā)
接收到前端控制器要尋找的Handler,選擇對應(yīng)的Handler進(jìn)行執(zhí)行,執(zhí)行后返回給前端控制器ModelAndView
4、處理器(Handler)——需要程序員開發(fā)
接受前端控制器發(fā)送來的任務(wù),返回ModelAndView給處理器適配器
5、視圖解析器(ViewResolver)——框架已提供不需要開發(fā)
接受前端控制器發(fā)送來的邏輯視圖(ModelAndView),轉(zhuǎn)換成真正的視圖,返還給前端控制器供其渲染
6、視圖(View)——需要程序員開發(fā)
經(jīng)過視圖解析器生成的視圖(如JSP、Excel、Freemarker、PDF等等),經(jīng)前端控制器渲染后發(fā)送到請求方
五、SpringMVC項目的架構(gòu)圖
SpringMVC架構(gòu)原理解析如下:
第一步:客戶端發(fā)起請求到前端控制器(DispatcherServlet)
第二步:前端控制器請求HandlerMapping處理器映射器去查找相應(yīng)的Handler,其中映射器可以通過XML配置也可通過注解實現(xiàn)
第三步:處理器映射器對url進(jìn)行匹配后返回給前端控制器執(zhí)行鏈(HandlerExecutionChain)
第四步:下一步開始請求執(zhí)行Handler,請求到了處理器適配器(HandlerAdapter)去適配相應(yīng)的Handler方法
第五步:Handler開始執(zhí)行
第六步:Handler執(zhí)行完返回ModelAndView給處理器適配器(HandlerAdapter)
第七步:處理器適配器向前端控制器返回ModelAndView對象
第八步:前端控制器把請求發(fā)送到視圖解析器(ViewResolver)進(jìn)行視圖解析,根據(jù)邏輯視圖名解析成真正的視圖(jsp)
第九步:視圖解析器向前端控制器返回View
第十步:前端控制器進(jìn)行視圖渲染,視圖渲染將視圖模型數(shù)據(jù)(在ModelAndView對象中)填充到request域中
第十一步:前端控制器向用戶響應(yīng)結(jié)果
總結(jié):
今天先大體上介紹了什么是SpringMVC,并且介紹了請求的流轉(zhuǎn)流程,后續(xù)會陸續(xù)更新SpringMVC的各個模塊以及用法
總結(jié)
以上是生活随笔為你收集整理的SpringMVC学习——对于SpringMVC的整体认识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于学习新技术的方法
- 下一篇: SpringMVC学习(一)——快速搭建