Spring MVC工做原理

Spring MVC流程前端

一、用戶發送請求至前端控制器 DispatcherServlet數據結構

二、DispatcherServlet 收到請求調用 HandlerMapping 處理器映射器app

三、HandlerMapping 處理器映射器找到具體的處理器(Controller)(xml配置、註解查找),生成處理器對象及處理器攔截器(若是有)一併返回給DispatcherServlet。函數

四、DispatcherServlet 調用 HandlerAdapter 處理適配器。spa

五、HandlerAdapter 通過適配調用具體的處理器(controller)。xml

六、Controller 執行完成返回 ModelAndView。對象

七、HadnlerAdapter 將 Controller 的執行結果 ModelAndView 返回給DispatcherServlet。blog

八、DispatcherServlet 將 ModelAndView 傳給 ViewReslover 視圖解析器。io

九、ViewReslover 解析後返回具體View。配置

十、DispatcherServlet 根據View 進行渲染視圖(將模型數據填充到視圖中)

十一、DispatcherServlet響應用戶。

 

組件說明:

DispatcherServlet:做爲前端控制器,整個流程控制的中心,控制、調度其餘組件。並最終將響應結果返回給用戶。

HandlerMapping:負責找到控制器。

HandlerAdapter:負責找到要具體的控制器函數。(飯後一個ModelAndView對象,包含模型數據、邏輯視圖名)。

ViewResolver:把邏輯視圖名解析爲具體的View,經過這種策略模式,很容易更換其餘視圖技術。

View:View會根據傳進來的Model模型數據進行渲染。此處的Model其實是一個Map數據結構,所以很容易支持其餘視圖技術。

 

 

即:

第一步:用戶發起請求到前端控制器(DispatcherServlet)

第二步:前端控制器請求處理器映射器(HandlerMappering)去查找處理器(Handle):經過xml配置或者註解進行查找

第三步:找到之後處理器映射器(HandlerMappering)像前端控制器返回執行鏈(HandlerExecutionChain)

第四步:前端控制器(DispatcherServlet)調用處理器適配器(HandlerAdapter)去執行處理器(Handler)

第五步:處理器適配器去執行Handler

第六步:Handler執行完給處理器適配器返回ModelAndView

第七步:處理器適配器向前端控制器返回ModelAndView

第八步:前端控制器請求視圖解析器(ViewResolver)去進行視圖解析

第九步:視圖解析器像前端控制器返回View

第十步:前端控制器對視圖進行渲染

第十一步:前端控制器向用戶響應結果

相關文章
相關標籤/搜索