SpringMVC流程架構圖解析
原文:https://www.cnblogs.com/HigginCui/p/5856780.html
【元件說明】
以下元件通常使用框架提供實現:
1.DisPatcherServlet:前端控制器(不需要程式設計師開發)
使用者請求到達前端控制器,它相當於MVC模式中的C(Controller),DispatcherServlet是整個流程控制的中心,由它呼叫其它元件處理使用者的請求,DispatcherServlet的存在降低了元件之間的耦合性。
作用:作為接受請求,響應結果,相當於轉發器,中央處理器,減少其他元件之間的耦合度。
2.HandlerMapping:處理器對映器(不需要程式設計師開發)
HandlerMapping負責根據使用者請求找到Handler(即:處理器),SpringMVC提供了不同的對映器實現實現不同的對映方式,例如:配置檔案方式、實現介面方式、註解方式等。
作用:根據請求的Url 查詢Handler
3.HandLer:處理器(需要程式設計師開發)
Handler是繼DispatcherServlet前端控制器的後端控制器,在DispatcherServlet的控制下,Handler對具體的使用者請求進行處理。
由於Handler設計到具體的使用者業務請求,所以一般情況需要程式設計師根據業務需求開發Handler。
注意:編寫Handler時按照HandlerAdpter的要求去做,這樣才可以去正確執行Handler。
4.HandlerAdapter:處理器介面卡
通過HandlerAdapter對處理器進行執行,這是介面卡模式的應用,通過擴充套件介面卡可以對更多型別的處理器進行執行。
作用:按照特定的規則(HandlerAdapter要求的規則)去執行Handler
5.ViewResolver:檢視解析器(不需要程式設計師開發)
ViewResolver負責將處理結果生成View檢視,ViewResolver首先根據邏輯檢視名解析成物理檢視名,即具體的頁面地址,再生成View檢視物件,最後對View進行渲染將處理結果通過頁面的展示給使用者。SpringMVC框架提供了很多View檢視型別,包括:JSTLView、freemarkerView、pdfView等等.
作用:進行檢視解析,根據邏輯檢視名解析成真正的檢視(view)。
6.View檢視 (需要程式設計師開發 jsp)
View是一個介面,實現類支援不同的View型別(jsp、freemarker、pdf)
一般情況下需要通過頁面標籤或者頁面模板技術將模型資料通過頁面展示給使用者,需要由程式設計師根據業務需求開發具體的頁面。
【流程圖】
【流程圖說明】
1.使用者傳送請求至 前端控制器DispatcherServlet。
2.前端控制器DispatcherServlet收到請求後呼叫處理器對映器HandlerMapping。
3.處理器對映器HandlerMapping根據請求的Url找到具體的處理器,生成處理器物件Handler及處理器攔截器HandlerIntercepter(如果有則生成)一併返回給前端控制器DispatcherServlet。
4.前端控制器DispatcherServlet通過處理器介面卡HandlerAdapter呼叫處理器Controller。
5.執行處理器(Controller,也叫後端控制器)
6.處理器Controller執行完後返回ModelAnView。
7.處理器對映器HandlerAdapter將處理器Controller執行返回的結果ModelAndView返回給前端控制器DispatcherServlet。
8.前端控制器DispatcherServlet將ModelAnView傳給檢視解析器ViewResolver。
9.檢視解析器ViewResolver解析後返回具體的檢視View。
10.前端控制器DispatcherServlet對檢視View進行渲染檢視(即:將模型資料填充至檢視中)
11.前端控制器DispatcherServlet響應使用者。