SpringMvc - SpringMvc的執行流程

b9x_發表於2018-03-19

SpringMvc的執行流程

這裡寫圖片描述

spring mvc將所有的請求都提交給DispatcherServlet,它會委託應用系統的其他模組負責對請求進行真正的處理工作。
1. 使用者向伺服器傳送請求,請求被Spring 前端控制Servelt DispatcherServlet捕獲;
2.DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller.返回給DispatcherServlet
3.DispatcherServlet將請求提交到目標Handle(Controller)
4.Handle(Controller)進行業務邏輯處理後(請求訊息轉換、資料轉換、資料格式化、資料驗證),會返回一個ModelAndView物件,其中view是檢視名稱,不是真正的檢視物件
5.DispathcherServlet根據返回的ModelAndView,選擇一個或多個合適的ViewResolver檢視解析器進行處理,返回給DispathcherServlet一個真正檢視物件View
6.DispathcherServlet根據模型資料和檢視物件,進行檢視渲染。
7.返回渲染後的檢視,給使用者做出響應


Spring為什麼要結合使用HandlerMapping以及HandlerAdapter來處理Handler?
符合物件導向中的單一職責原則,程式碼架構清晰,便於維護,最重要的是程式碼可複用性高。如HandlerAdapter可能會被用於處理多種Handler。

相關文章