SpringMVC流程:
01、用戶發送出請求到前端控制器DispatcherServlet。
02、DispatcherServlet收到請求調用HandlerMapping(處理器映射器)。
03、HandlerMapping找到具體的處理器(可查找xml配置或注解配置),生成處理器對象及處理器攔截器(如果有),再一起返回給DispatcherServlet。
04、DispatcherServlet調用HandlerAdapter(處理器適配器)。
05、HandlerAdapter經過適配調用具體的處理器(Handler/Controller)。
06、Controller執行完成返回ModelAndView對象。
07、HandlerAdapter將Controller執行結果ModelAndView返回給DispatcherServlet。
08、DispatcherServlet將ModelAndView傳給ViewReslover(視圖解析器)。
09、ViewReslover解析后返回具體View(視圖)。
10、DispatcherServlet根據View進行渲染視圖(即將模型數據填充至視圖中)。
11、DispatcherServlet響應用戶。
涉及組件分析:
1、前端控制器DispatcherServlet(不需要程序員開發),由框架提供,在web.xml中配置。
作用:接收請求,響應結果,相當於轉發器,中央處理器。
2、處理器映射器HandlerMapping(不需要程序員開發),由框架提供。
作用:根據請求的url查找Handler(處理器/Controller),可以通過XML和注解方式來映射。
3、處理器適配器HandlerAdapter(不需要程序員開發),由框架提供。
作用:按照特定規則(HandlerAdapter要求的規則)去執行Handler。
4、處理器Handler(也稱之為Controller,需要工程師開發)
注意:編寫Handler時按照HandlerAdapter的要求去做,這樣適配器才可以去正確執行Handler。
作用:接受用戶請求信息,調用業務方法處理請求,也稱之為后端控制器。
5、視圖解析器ViewResolver(不需要程序員開發),由框架提供
作用:進行視圖解析,把邏輯視圖名解析成真正的物理視圖。
SpringMVC框架支持多種View視圖技術,包括:jstlView、freemarkerView、pdfView等。
6、視圖View(需要工程師開發)
作用:把數據展現給用戶的頁面
View是一個接口,實現類支持不同的View技術(jsp、freemarker、pdf等)
具體組件的配置相關,請查閱
spring-webmvc-4.3.2.RELEASE.jar 包
下面
/org/springframework/web/servlet/DispatcherServlet.properties 的相關配置