springMVC是spring框架的一個(gè)模塊,springMVC和spring無(wú)需通過(guò)中間整合層進(jìn)行開(kāi)發(fā)。
成都創(chuàng)新互聯(lián)專(zhuān)注于二連浩特企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城建設(shè)。二連浩特網(wǎng)站建設(shè)公司,為二連浩特等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站建設(shè),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
springMVC是一個(gè)基于mvc的web框架。
spring web mvc和Struts2都屬于表現(xiàn)層的框架,它是Spring框架的一部分,我們可以從Spring的整體結(jié)構(gòu)中看得出來(lái):
1.用戶(hù)發(fā)起request請(qǐng)求至控制器(Controller)
控制接收用戶(hù)請(qǐng)求的數(shù)據(jù),委托給模型進(jìn)行處理
2.控制器通過(guò)模型(Model)處理數(shù)據(jù)并得到處理結(jié)果
模型通常是指業(yè)務(wù)邏輯
3.模型處理結(jié)果返回給控制器
4.控制器將模型數(shù)據(jù)在視圖(View)中展示
web中模型無(wú)法將數(shù)據(jù)直接在視圖上顯示,需要通過(guò)控制器完成。如果在C/S應(yīng)用中模型是可以將數(shù)據(jù)在視圖中展示的。
5.控制器將視圖response響應(yīng)給用戶(hù)
通過(guò)視圖展示給用戶(hù)要的數(shù)據(jù)或處理結(jié)果。
(1).發(fā)起請(qǐng)求到前端控制器(DispatcherServlet);
(2).前端控制器請(qǐng)求HandlerMapping查找Handler,可以根據(jù)xml配置、注解進(jìn)行查找;
(3).處理器映射器HandlerMapping向前端控制器返回Handler;
(4).前端控制器調(diào)用處理器適配器去執(zhí)行Handler;
(5).處理器適配器去執(zhí)行Handler;
(6).Handler執(zhí)行完成給適配器返回ModelAndView;
(7).處理器適配器向前端控制器返回ModelAndView(是springmvc框架的一個(gè)底層對(duì)象,包括Model和View);
(8).前端控制器請(qǐng)求視圖解析器去進(jìn)行視圖解析,根據(jù)邏輯視圖名稱(chēng)解析真正的視圖(jsp...);
(9).視圖解析器向前端控制器返回View;
(10).前端控制器進(jìn)行視圖渲染,視圖渲染就是將模型數(shù)據(jù)(在ModelAndView對(duì)象中)填充到request域中。
(11).前端控制器向用戶(hù)響應(yīng)結(jié)果。
1、前端控制器DispatcherServlet(不需要攻城獅開(kāi)發(fā)),由框架提供
作用:接收請(qǐng)求,響應(yīng)結(jié)果,相當(dāng)于轉(zhuǎn)發(fā)器,中央處理器。有了dispatcherServlet減少了其它組件之間的耦合度。
用戶(hù)請(qǐng)求到達(dá)前端控制器,它就相當(dāng)于mvc模式中的c,dispatcherServlet是整個(gè)流程控制的中心,由它調(diào)用其它組件處理用戶(hù)的請(qǐng)求,dispatcherServlet的存在降低了組件之間的耦合性。
2、處理器映射器HandlerMapping(不需要攻城獅開(kāi)發(fā)),由框架提供
作用:根據(jù)請(qǐng)求的url查找Handler
HandlerMapping負(fù)責(zé)根據(jù)用戶(hù)請(qǐng)求找到Handler即處理器,springmvc提供了不同的映射器實(shí)現(xiàn)不同的映射方式,例如:配置文件方式,實(shí)現(xiàn)接口方式,注解方式等。
3、處理器適配器HandlerAdapter
作用:按照特定規(guī)則(HandlerAdapter要求的規(guī)則)去執(zhí)行Handler
通過(guò)HandlerAdapter對(duì)處理器進(jìn)行執(zhí)行,這是適配器模式的應(yīng)用,通過(guò)擴(kuò)展適配器可以對(duì)更多類(lèi)型的處理器進(jìn)行執(zhí)行。
4、處理器Handler(需要攻城獅開(kāi)發(fā))
注意:編寫(xiě)Handler時(shí)按照HandlerAdapter的要求去做,這樣適配器才可以去正確執(zhí)行Handler
Handler 是繼DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler對(duì)具體的用戶(hù)請(qǐng)求進(jìn)行處理。
由于Handler涉及到具體的用戶(hù)業(yè)務(wù)請(qǐng)求,所以一般情況需要攻城獅根據(jù)業(yè)務(wù)需求開(kāi)發(fā)Handler。
5、視圖解析器View resolver(不需要攻城獅開(kāi)發(fā)),由框架提供
作用:進(jìn)行視圖解析,根據(jù)邏輯視圖名解析成真正的視圖(view)
View Resolver負(fù)責(zé)將處理結(jié)果生成View視圖,View Resolver首先根據(jù)邏輯視圖名解析成物理視圖名即具體的頁(yè)面地址,再生成View視圖對(duì)象,最后對(duì)View進(jìn)行渲染將處理結(jié)果通過(guò)頁(yè)面展示給用戶(hù)。 springmvc框架提供了很多的View視圖類(lèi)型,包括:jstlView、freemarkerView、pdfView等。
一般情況下需要通過(guò)頁(yè)面標(biāo)簽或頁(yè)面模版技術(shù)將模型數(shù)據(jù)通過(guò)頁(yè)面展示給用戶(hù),需要由攻城獅根據(jù)業(yè)務(wù)需求開(kāi)發(fā)具體的頁(yè)面。
6、視圖View(需要攻城獅開(kāi)發(fā)jsp...)
View是一個(gè)接口,實(shí)現(xiàn)類(lèi)支持不同的View類(lèi)型(jsp、freemarker、pdf...)