Spring MVC 處理HTTP請求的整體流程
DispatcherServlet是一個前端控制器,是整個Spring MVC框架的核心組件。它在接收HTTP請求之後,根據請求調用Spring MVC中的各個組件。
常用接口及其含義:
1. Controller:被@Controller修飾的類是控制器類。
2. HandlerMapping:將用戶請求映射到控制器。
3. HandlerInterceptor:攔截指定格式的URL請求。
4. ModelAndView:控制器處理完請求後,將視圖的邏輯名稱和模型數據封裝成ModelAndView對象,把該對象交給DispatcherServlet。
5. ViewResolver:視圖解析器,將視圖的邏輯名稱映射成具體的視圖。
6. View:具體視圖。
Spring MVC 處理HTTP請求的整體流程如下圖所示:
1. 用戶發送HTTP請求後,該請求交給DispatcherServlet處理。
2. DispatcherServlet根據請求查找一個或多個HandlerMapping,根據HandlerMapping查找處理請求的Controller。
3. DispatcherServlet將請求提交給Controller。
4. Controller調用Service層處理請求。
5. Controller處理請求後得到ModelAndView對象。
6. DispatcherServlet查找一個或多個ViewResolver視圖解析器。
7. 視圖解析後得到ModelAndView指定的視圖。
8. HTTP響應,View展示數據。
參考資料
《MyBatis技術內幕》 P391-393
Spring MVC 處理HTTP請求的整體流程