springMVC是spring框架的一個模塊,springMVC和spring無需通過中間整合層進行開發(fā)。
springMVC是一個基于mvc的web框架。
Springwebmvc和Struts2都屬于表現(xiàn)層的框架,它是Spring框架的一部分,我們可以從Spring的整體結(jié)構中看得出來:
mvc是個一個設計模式,大家都曉得,無需贅述了,直接看mvc在b/s系統(tǒng)下的應用:
1.用戶發(fā)起request請求至控制器(Controller)
控制接收用戶請求的數(shù)據(jù),委托給模型進行處理
2.控制器通過模型(Model)處理數(shù)據(jù)并得到處理結(jié)果
模型通常是指業(yè)務邏輯
3.模型處理結(jié)果返回給控制器
4.控制器將模型數(shù)據(jù)在視圖(View)中展示
web中模型無法將數(shù)據(jù)直接在視圖上顯示,需要通過控制器完成。如果在C/S應用中模型是可以將數(shù)據(jù)在視圖中展示的。
5.控制器將視圖response響應給用戶
通過視圖展示給用戶要的數(shù)據(jù)或處理結(jié)果。
三、SpringMVC框架介紹(1).發(fā)起請求到前端控制器(DispatcherServlet);
(2).前端控制器請求HandlerMapping查找Handler,可以根據(jù)xml配置、注解進行查找;
(3).處理器映射器HandlerMapping向前端控制器返回Handler;
(4).前端控制器調(diào)用處理器適配器去執(zhí)行Handler;
(5).處理器適配器去執(zhí)行Handler;
(6).Handler執(zhí)行完成給適配器返回ModelAndView;
(7).處理器適配器向前端控制器返回ModelAndView(是springmvc框架的一個底層對象,包括Model和View);
(8).前端控制器請求視圖解析器去進行視圖解析,根據(jù)邏輯視圖名稱解析真正的視圖(jsp...);
(9).視圖解析器向前端控制器返回View;
(10).前端控制器進行視圖渲染,視圖渲染就是將模型數(shù)據(jù)(在ModelAndView對象中)填充到request域中。
(11).前端控制器向用戶響應結(jié)果。
組件:
1、前端控制器DispatcherServlet(不需要攻城獅開發(fā)),由框架提供
作用:接收請求,響應結(jié)果,相當于轉(zhuǎn)發(fā)器,中央處理器。有了dispatcherServlet減少了其它組件之間的耦合度。
用戶請求到達前端控制器,它就相當于mvc模式中的c,dispatcherServlet是整個流程控制的中心,由它調(diào)用其它組件處理用戶的請求,dispatcherServlet的存在降低了組件之間的耦合性。
2、處理器映射器HandlerMapping(不需要攻城獅開發(fā)),由框架提供
作用:根據(jù)請求的url查找Handler
HandlerMapping負責根據(jù)用戶請求找到Handler即處理器,springmvc提供了不同的映射器實現(xiàn)不同的映射方式,例如:配置文件方式,實現(xiàn)接口方式,注解方式等。
3、處理器適配器HandlerAdapter
作用:按照特定規(guī)則(HandlerAdapter要求的規(guī)則)去執(zhí)行Handler
通過HandlerAdapter對處理器進行執(zhí)行,這是適配器模式的應用,通過擴展適配器可以對更多類型的處理器進行執(zhí)行。
4、處理器Handler(需要攻城獅開發(fā))
注意:編寫Handler時按照HandlerAdapter的要求去做,這樣適配器才可以去正確執(zhí)行Handler
Handler是繼DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler對具體的用戶請求進行處理。
由于Handler涉及到具體的用戶業(yè)務請求,所以一般情況需要攻城獅根據(jù)業(yè)務需求開發(fā)Handler。
5、視圖解析器Viewresolver(不需要攻城獅開發(fā)),由框架提供
作用:進行視圖解析,根據(jù)邏輯視圖名解析成真正的視圖(view)
ViewResolver負責將處理結(jié)果生成View視圖,ViewResolver首先根據(jù)邏輯視圖名解析成物理視圖名即具體的頁面地址,再生成View視圖對象,最后對View進行渲染將處理結(jié)果通過頁面展示給用戶。springmvc框架提供了很多的View視圖類型,包括:jstlView、freemarkerView、pdfView等。
一般情況下需要通過頁面標簽或頁面模版技術將模型數(shù)據(jù)通過頁面展示給用戶,需要由攻城獅根據(jù)業(yè)務需求開發(fā)具體的頁面。
6、視圖View(需要攻城獅開發(fā)jsp...)
View是一個接口,實現(xiàn)類支持不同的View類型(jsp、freemarker、pdf...)
新聞熱點
疑難解答