SpringMVC運行流程
1)用戶發送請求至前端控制器DispatcherServlet。
2)DispatcherServlet收到請求調用HandlerMapping處理器映射器。
3)處理器映射器找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一併返回給DispatcherServlet。
4)DispatcherServlet調用HandlerAdapter處理器適配器。
5)HandlerAdapter經過適配調用具體的處理器(Controller,也叫後端控制器)。
6)Controller執行完成返回ModelAndView。
7)HandlerAdapter將controller執行結果ModelAndView返回給DispatcherServlet。
8)DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器。
9)ViewReslover解析後返回具體View。
10)DispatcherServlet根據View進行渲染視圖(即將模型數據填充至視圖中)。
11)DispatcherServlet響應用戶。
說明:
Handler: 也就是處理器,直接對應着MVC中的C也就是控制層。SpringMVC中用@RequestMapping標註的方法都可以看成一個Handler。也就是隻要可以實際處理的請求就是Handleer。
HandlerMapping: 用來查找Handler。
HandlerAdapter: 適配器。因爲SpringMVC中的Handler可以是任意形式,只要能處理請求就可以,但是Servlet需要的處理方法的結構是固定的,都是用request和response爲參數的方法(比如doService方法)。如何讓固定的Servlet處理方法調用靈活的Handler來進行處理?這就是HandlerAdapter所做的事情。
View: 用來展示數據。
ViewResolver: 用來查找View。