SpringMVC執行流程

下圖展示了SpringMVC請求響應的完整流程:

wKioL1j10PexNXrHAAK3_hEeOUc115.jpg-wh_50

  1. 用戶想服務器發出請求,請求被Spring的前端控制器DispatcherServlet截獲。

  2. DispatcherServlet對請求的URL(統一資源定位符)進行解析,得到URI(資源的標識符),根據URI調用HandlerMapping獲得該Handler配置的所有相關對象,包括handler對象以及handler對象對應的攔截器,這些對象會被封裝在一個HandlerExecutionChain對象當中返回。

  3. DispatcherServlet根據獲得的Handler,選擇一個合適的HandlerAdapter。HandlerAdapter用來處理多種Handler,調用Handler實際處理請求的方法比如hello方法。HandlerAdapter的設計符合面向對象中的單一職責原則,代碼架構清晰,便於維護,最爲重要的是代碼複用性高。

  4. 提取請求中的模型數據,開始執行Handler(Controller).在填充Handler入參過程中,根據配置,Spring將會做一些額外的配置:數據轉換、數據格式化、數據驗證等。

  5. Handler執行完成後,想DispatcherServlet返回一個ModelAndView對象,ModelAndView當中包含視圖名或視圖名和模型。

  6. 根據返回的ModelAndView對象,選擇一個合適的ViewResolver返回給DispatcherServlet。

  7. ViewResolver結合Model和View來渲染視圖。

  8. 將渲染視圖結果返回給客戶端。

    以上8個步驟,完成SpringMVC請求->響應的完整工作流程,其中DispatcherServlet、HandlerMapping、HandlerAdapter以及ViewResolver對於開發者來說都是不可見的,開發者只需要在Handler(Controller)中完成對請求的業務處理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章