1. 程式人生 > >SpringMVC執行流程簡介

SpringMVC執行流程簡介

這裡寫圖片描述

1、使用者向伺服器傳送請求,請求被SpringMVC的前端控制器DispatcherServlet截獲。
2、DispatcherServlet對請求的URL(統一資源定位符)進行解析,得到URI(請求資源識別符號),然後根據該URI,呼叫HandlerMapping獲得該Handler配置的所有相關的物件,包括Handler物件以及Handler物件對應的攔截器,這些物件都會被封裝到一個HandlerExecutionChain物件當中返回。
3、DispatcherServlet根據獲得的Handler,選擇一個合適的HandlerAdapter。HandlerAdapter的設計符合面向物件中的單一職責原則,程式碼結構清晰,便於維護,最為重要的是,程式碼的可複製性高。HandlerAdapter會被用於處理多種Handler
,呼叫Handler實際處理請求的方法。 4、 提取請求中的模型資料,開始執行Handler(Controller)。在填充Handler的入參過程中,根據配置,spring將幫助做一些額外的工作 訊息轉換:將請求的訊息,如json、xml等資料轉換成一個物件,將物件轉換為指定的響應資訊。 資料轉換:對請求訊息進行資料轉換,如String轉換成IntegerDouble等。 資料格式化:對請求的訊息進行資料格式化,如將字串轉換為格式化數字或格式化日期等。 資料驗證:驗證資料的有效性如長度、格式等,驗證結果儲存到BindingResult或Error中。 5Handler執行完成後,向DispatcherServlet返回一個ModelAndView物件,ModelAndView物件中應該包含檢視名或檢視模型。 6
、根據返回的ModelAndView物件,選擇一個合適的ViewResolver(檢視解析器)返回給DispatcherServlet。 7、ViewResolver結合Model和View來渲染檢視。 8、將檢視渲染結果返回給客戶端。 以上8個步驟,DispatcherServlet、HandlerMapping、HandlerAdapter和ViewResolver等物件協同工作,完成SpringMVC請求—>響應的整個工作流程,這些物件完成的工作對於開發者來說都是不可見的,開發者並不需要關心這些物件是如何工作的,開發者,只需要在Handler(Controller)當中完成對請求的業務處理。