01.spring mvc各組件執行流程

  1. 請求離開瀏覽器時,會帶有用戶所請求內容的信息,至少會包含請求的URL。還可能帶有其他的信息,例如用戶提交的表單信 息,請求到達Spring MVC的DispatcherServlet,DispatcherServlet的任務是將請求發送給Spring MVC控制器;
  2. DispatcherServlet需要知道應該將請求發送給哪個控制器(Controller)。所以DispatcherServlet以會查詢一個或多個處理器映射(handler mapping) 來確定請求要發送的控制器,處理器映射會根據請求所攜帶的URL信息來進行決策
  3. 一旦選擇了合適的控制器,DispatcherServlet會將請求發送給選中的控制器,到了控制器,請求會卸下其負載(用戶提交的信息)並耐心等待控制器處理這些信息。(實際上,設計良好的控制器本身只處理很少甚至不處理工作,而是將業務邏輯委託給一個或多個服務對象進行處理。)
  4. 控制器所做的最後一件事就是將模型數據打包,並且標示出用於渲染輸出的視圖名。它接下來會將請求連同模型和視圖名發送回DispatcherServlet
  5. 這樣,控制器就不會與特定的視圖相耦合,傳遞給 DispatcherServlet的視圖名並不直接表示某個特定的JSP。實際 上,它甚至並不能確定視圖就是JSP。相反,它僅僅傳遞了一個邏輯 名稱,這個名字將會用來查找產生結果的真正視 圖。DispatcherServlet將會使用視圖解析器(view resolver) 來將邏輯視圖名匹配爲一個特定的視圖實現,它可能是也可能不是 JSP。
  6. 既然DispatcherServlet已經知道由哪個視圖渲染結果,那請求的任務基本上也就完成了。它的最後一站是到達【視圖的實現】(可能是JSP)
  7. 在這裏它交付模型數據。請求的任務就完成了。視圖將使用模型數據渲染輸出,這個輸出會通過響應對象(Response)傳遞給客戶端(不會像聽上去那樣硬編碼)

 

 

 

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