從剛纔的Spring MVC入門程序中,咱們大體明白了代碼的書寫過程,可是對Spring MVC每一個元素的執行過程不太清楚,接下來咱們分析Spring MVC的執行流程。html
1 Spring MVC執行流程圖

- 用戶發送出請求到前端控制器DispatcherServlet。
- DispatcherServlet收到請求調用HandlerMapping(處理器映射器)。
- HandlerMapping找到具體的處理器(可查找xml配置或註解配置),生成處理器對象及處理器攔截器(若是有),再一塊兒返回給DispatcherServlet。
- DispatcherServlet調用HandlerAdapter(處理器適配器)。
- HandlerAdapter通過適配調用具體的處理器(Handler/Controller)。
- Controller執行完成返回ModelAndView對象。
- HandlerAdapter將Controller執行結果ModelAndView返回給DispatcherServlet。
- DispatcherServlet將ModelAndView傳給ViewReslover(視圖解析器)。
- ViewReslover解析後返回具體View(視圖)。
- DispatcherServlet根據View進行渲染視圖(即將模型數據填充至視圖中)。
- DispatcherServlet響應用戶。
2 關鍵組件分析
- 前端控制器:DispatcherServlet(不須要程序員開發),由框架提供,在web.xml中配置。 做用:接收請求,響應結果,至關於轉發器,中央處理器。
- 處理器映射器:HandlerMapping(不須要程序員開發),由框架提供。 做用:根據請求的url查找Handler(處理器/Controller),能夠經過XML和註解方式來映射。
- 處理器適配器:HandlerAdapter(不須要程序員開發),由框架提供。 做用:按照特定規則(HandlerAdapter要求的規則)去執行Handler。
- 處理器:Handler(也稱之爲Controller,須要工程師開發)。 注意:編寫Handler時按照HandlerAdapter的要求去作,這樣適配器才能夠去正確執行Handler。 做用:接受用戶請求信息,調用業務方法處理請求,也稱之爲後端控制器。
- 視圖解析器:ViewResolver(不須要程序員開發),由框架提供。 做用:進行視圖解析,把邏輯視圖名解析成真正的物理視圖。
- 視圖:View(須要前端工程師開發)。 做用:把數據展示給用戶的頁面,View是一個接口,實現類支持不一樣的View技術(Jsp、Freemarker、Pdf等)
原文地址:http://www.yiidian.com/springmvc/process-analysis.html前端
歡迎關注個人公衆號:一點教程,得到高質量的IT學習資源和乾貨推送。 若是您對個人專題內容感興趣,也能夠關注個人網站:yiidian.com程序員