1. 程式人生 > 其它 >【走近Spring】Spring MVC執行流程 FrameworkServlet、DispatcherServlet分析(processRequest、doDispatch)

【走近Spring】Spring MVC執行流程 FrameworkServlet、DispatcherServlet分析(processRequest、doDispatch)

問題剖析:

  1. 一個請求url是怎麼樣找到Handler進行處理的?
  2. 攔截器為何preHandler順序執行,postHandler就倒序執行呢?
  3. Spring MVC是怎麼樣去優雅的處理異常的?…...

請求處理流程:

瞭解之前,我們先巨集觀看看,一個請求達到Spring MVC,它的一個處理流程。

這裡我首先貼上一張非常權威的流程圖,也是Spring in Action這本書裡提供的,springmvc的核心元件和請求處理流程:

描述:

  1. DispatcherServlet是springmvc中的前端控制器(front controller),負責接收request並將request轉發給對應的處理元件。
  2. HanlerMapping是springmvc中完成url到controller對映的元件。DispatcherServlet接收request,然後從HandlerMapping查詢處理request的controller。
  3. Controller處理request,並返回ModelAndView物件,Controller是springmvc中負責處理request的元件(類似於struts2中的Action),ModelAndView是封裝結果檢視的元件
  4. ④ ⑤ ⑥:檢視解析器解析ModelAndView物件並返回對應的檢視給客戶端

下面這張圖更能描述處理的一些細節: