1 SpringMVC架構
1.1 Spring web mvc介紹
Spring web mvc和Struts2都屬於表現層的框架,它是Spring框架的一部分,我們可以從Spring的整體結構中看得出來:
1.2 Web MVC
mvc設計模式在b/s系統下應用:
- 用戶發起request請求至控制器(Controller)控制接收用戶請求的數據,委託給模型進行處理
- 控制器通過模型(Model)處理數據並得到處理結果模型通常是指業務邏輯
- 模型處理結果返回給控制器
- 控制器將模型數據在視圖(View)中展示web中模型無法將數據直接在視圖上顯示,需要通過控制器完成。如果在C/S應用中模型是可以將數據在視圖中展示的。
- 控制器將視圖response響應給用戶通過視圖展示給用戶要的數據或處理結果。
1.3 Spring web mvc 架構
1.3.1 架構圖
1.3.2 架構流程
- 用戶發送請求至前端控制器DispatcherServlet
- DispatcherServlet收到請求調用HandlerMapping處理器映射器。
- 處理器映射器根據請求url找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一併返回給DispatcherServlet。
- DispatcherServlet通過HandlerAdapter處理器適配器調用處理器
- 執行處理器(Controller,也叫後端控制器)。
- Controller執行完成返回ModelAndView
- HandlerAdapter將controller執行結果ModelAndView返回給DispatcherServlet
- DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器
- ViewReslover解析後返回具體View
- DispatcherServlet對View進行渲染視圖(即將模型數據填充至視圖中)。
- DispatcherServlet響應用戶
1.3.3 組件說明
以下組件通常使用框架提供實現:
- DispatcherServlet:前端控制器
用戶請求到達前端控制器,它就相當於mvc模式中的c,dispatcherServlet是整個流程控制的中心,由它調用其它組件處理用戶的請求,dispatcherServlet的存在降低了組件之間的耦合性。
- HandlerMapping:處理器映射器
HandlerMapping負責根據用戶請求找到Handler即處理器,springmvc提供了不同的映射器實現不同的映射方式,例如:配置文件方式,實現接口方式,註解方式等。
- Handler:處理器
Handler 是繼DispatcherServlet前端控制器的後端控制器,在DispatcherServlet的控制下Handler對具體的用戶請求進行處理。
由於Handler涉及到具體的用戶業務請求,所以一般情況需要程序員根據業務需求開發Handler。
- HandlAdapter:處理器適配器
通過HandlerAdapter對處理器進行執行,這是適配器模式的應用,通過擴展適配器可以對更多類型的處理器進行執行。
- View Resolver:視圖解析器
View Resolver負責將處理結果生成View視圖,View Resolver首先根據邏輯視圖名解析成物理視圖名即具體的頁面地址,再生成View視圖對象,最後對View進行渲染將處理結果通過頁面展示給用戶。 springmvc框架提供了很多的View視圖類型,包括:jstlView、freemarkerView、pdfView等。
一般情況下需要通過頁面標籤或頁面模版技術將模型數據通過頁面展示給用戶,需要由程序員根據業務需求開發具體的頁面。