1. 程式人生 > >SpringMVC框架工作流程

SpringMVC框架工作流程

1、 使用者向伺服器傳送請求

請求被 SpringMVC 的前端控制器 DispatcherServlet 截獲。

2、DispatcherServlet 對請求的 URL進行解析

得到 URI(請求資源識別符號),然後根據該 URI,呼叫 HandlerMapping 獲得該 Handler 配置的所有相關的物件,包括 Handler 物件以及 Handler 物件對應的攔截器,這些物件都會被封裝到一個 HandlerExecutionChain 物件當中返回。

3、DispatcherServlet 獲得 Handler

DispatcherServlet會根據獲得的Handler,選擇一個合適的 HandlerAdapter。HandlerAdapter 的設計
符合面向物件中的單一職責原則,程式碼結構清晰,便於維護,最為重要的是,程式碼的可複製性高。
HandlerAdapter 會被用於處理多種 Handler,呼叫 Handler 實際處理請求的方法。

4、開始執行 Handler(Controller)

提取請求中的模型資料,開始執行 Handler。在填充 Handler 的入參過程中,根據配置,
spring 將幫助做一些額外的工作:
訊息轉換:將請求的訊息,如 json、xml等資料轉換成一個物件,將物件轉換為指定的響應資訊。
資料轉換:對請求訊息進行資料轉換,如 String 轉換成 Integer、Double 等。
資料格式化:對請求的訊息進行資料格式化,如將字串轉換為格式化數字或格式化日期等。
資料驗證:驗證資料的有效性如長度、格式等,驗證結果儲存到 BindingResult 或 Error 中。

5、Handler 執行完成

Handler 執行完成後,會向 DispatcherServlet 返回一個 ModelAndView 物件,ModelAndView 物件中應該包含檢視名或檢視模型

6、返回試圖解析器

根據返回的ModelAndView物件選擇一個合適的ViewResolver(檢視解析器)返回給DispatcherServlet。

7、渲染檢視

ViewResolver 結合 Model 和 View 來渲染檢視。

8、將檢視渲染結果返回給客戶端

以上 步驟,DispatcherServlet、HandlerMapping、HandlerAdapter 和 ViewResolver 等物件協同工
作,完成 SpringMVC 請求—>響應的整個工作流程,這些物件完成的工作對於開發者來說都是不可
見的,開發者並不需要關心這些物件是如何工作的,開發者,只需要在 Handler(Controller)當中完成
對請求的業務處理。