Spring MVC執行流程


 

SpringMVC是隸屬於Spring Web中的一部分, 屬於表現層的框架.

其使用了MVC架構模式的思想, 將Web層進行職責解耦, 使用請求-響應模型簡化Web開發

SpringMVC通過中央調度器DispatcherServlet,來調用MVC的三大件:Controller、Model、View。

保證MVC的每一個組件只與DispatcherServlet耦合, 彼此之間獨立運行, 降低程序的耦合性。

具體執行邏輯如下: 

  1. 瀏覽器提交請求到中央調度器.
  2. 中央調度器將請求轉給處理器映射器.
  3. 處理器映射器根據請求, 找到請求對應的處理器, 並將其封裝為處理器執行鏈返回給中央調度器.
  4. 中央調度器根據處理器執行鏈中的處理器, 找到能夠執行該處理器的適配器.
  5. 適配器調用執行處理器.
  6. 處理器將處理結果以及要跳轉的視圖封裝到一個對象ModelAndView中, 並將其返回給處理器適配器.
  7. 適配器將結果返回給中央調度器.
  8. 中央調度器調用視圖解析器, 將ModelAndView中的視圖名封裝為視圖對象.
  9. 視圖解析器將封裝了的視圖對象返回給中央處理器.
  10. 中央調度器調用視圖對象, 讓其渲染, 即進行數據填充, 形成響應對象.
  11. 中央調度器響應瀏覽器.

DispatcherServlet

中央調度器, 它用來調用諸如處理器映射器, 適配器, 視圖解析器等組件處理用戶請求.

中央調度器的存在降低了組件之間的耦合.

HandlerMapping

處理器映射器, 負責根據用戶請求找到對應的Handler, 即處理器, 並將處理器封裝為處理器執行鏈返回給中央調度器.

HandleAdaptor

適配器模式, 可以擴展適配器來對更多類型的處理器進行執行, 中央調度器根據不同的處理器自動選擇適配器, 以執行處理器.

Handler

處理器, 即后端控制器. 在DispatcherServlet控制下Handler調用Service層對具體用戶請求進行處理.

Handler一般涉及的是用戶具體的業務請求, 充當MVC中的Controller.

ViewResolver

視圖解析器, 負責將處理結果生成View視圖, ViewResolver首先將邏輯視圖名解析為物理視圖名(具體頁面地址).

再生成View視圖(html/json/xml), 返回給中央處理器, 由中央處理器將結果通過頁面形式展現給用戶.

SpringMVC中提供了多種View視圖類型, 例如: JstlView, RedirectView等等.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM