執行流程:
1、 用戶向服務器發送請求,請求被 Spring 前端控制 Servelt DispatcherServlet 捕獲(捕獲)
2、 DispatcherServlet對請求 URL進行解析,得到請求資源標識符(URI)。然后根據該 URI,調用 HandlerMapping獲得該Handler配置的所有相關的對象(包括 Handler對象以及 Handler對象對應的攔截器),最后以 HandlerExecutionChain對象的形式返回;(查找 handler)
3、 DispatcherServlet 根據獲得的 Handler,選擇一個合適的 HandlerAdapter。 提取Request 中的模型數據,填充 Handler 入參,開始執行 Handler(Controller), Handler執行完成后,向 DispatcherServlet 返回一個 ModelAndView 對象(執行 handler)
4、DispatcherServlet 根據返回的 ModelAndView,選擇一個適合的 ViewResolver(必須是已經注冊到 Spring 容器中的 ViewResolver) (選擇 ViewResolver)
5、通過 ViewResolver 結合 Model 和 View,來渲染視圖,DispatcherServlet 將渲染結果返回給客戶端。(渲染返回)
快速記憶技巧:
核心控制器捕獲請求、查找Handler、執行Handler、選擇ViewResolver,通過ViewResolver渲染視圖並返回