Spring MVC請求處理流程

     從接受請求到返回響應,Spring MVC框架的衆多組件都伸胳膊挽袖子行動起來,各司其職,有條不紊地完成份內的工作。在整個框架中,DispatcherServlet處於核心的位置,它負責協調和組織不同組件,共同完成請求響應的工作。和大多數Web MVC框架一樣,Spring MVC通過一個前端Servlet處理器接收所有的請求,並將具體工作委託給其它組件進行具體的處理,DispatcherServlet就是 Spring MVC的前端Servlet處理器。下面我們對Spring MVC處理請求的整體過程做一下高空俯瞰:

① 整個過程開始於客戶端發送一個HTTP請求;


② DispatcherServlet接收這個請求後,並將請求的處理工作委託給具體的處理器(Handler),後者負責處理請求執行相應的業務邏輯。在這之前, 

    DispatcherServlet必須能夠憑藉請求信息(URL或請求參數等)按照某種機制找到請求對應的處理器,DispatcherServlet是通過垂詢

    HandlerMapping完成這一工作的;


③ 當DispatcherServlet從HandlerMapping中得到當前請求對應的處理器後,它就將請求分派給這個處理器。處理器根據請求的信息執行相應的業務邏

    輯,一個設計良好的處理器應該通過調用Service層的業務對象完成業務處理,而非自己越俎代庖。


④ 處理器完成業務邏輯的處理後將返回一個ModelAndView給DispatcherServlet,ModelAndView包含了視圖邏輯名和渲染視圖時需要用到的模型數

    據對象;


⑤ 由於ModelAndView中包含的是視圖邏輯名,DispatcherServlet必須知道這個邏輯名對應的真實視圖對象,這項視圖解析的工作通過調用 

     ViewResolver來完成;


⑥ 當得到真實的視圖對象後,DispatcherServlet將請求分派給這個View對象,由其完成Model數據的渲染工作;


⑦ 最終客戶端得到返回的響應,這可能是一個普通的HTML頁面,也可能是一個Excel電子表格、甚至是一個PDF文檔等不一而足的視圖形式,Spring的

    視圖類型是異常豐富和靈活的。

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