【組件說明】前端
如下組件一般使用框架提供實現:程序員
1.DisPatcherServlet:前端控制器(不須要程序員開發)後端
用戶請求到達前端控制器,它至關於MVC模式中的C(Controller),DispatcherServlet是整個流程控制的中心,由它調用其它組件處理用戶的請求,DispatcherServlet的存在下降了組件之間的耦合性。app
做用:做爲接受請求,相應結果,至關於轉發器,中央處理器,減小其餘組件之間的耦合度。框架
2.HandlerMapping:處理器映射器(不須要程序員開發)jsp
HandlerMapping負責根據用戶請求找到Handler(即:處理器),SpringMVC提供了不一樣的映射器實現實現不一樣的映射方式,例如:配置文件方式、實現接口方式、註解方式等。spa
做用:根據請求的Url 查找Handler設計
3.HandLer:處理器(須要程序員開發)對象
Handler是繼DispatcherServlet前端控制器的後端控制器,在DispatcherServlet的控制下,Handler對具體的用戶請求進行處理。接口
因爲Handler設計到具體的用戶業務請求,因此通常狀況須要程序員根據業務需求開發Handler。
注意:編寫Handler時按照HandlerAdpter的要求去作,這樣才能夠去正確執行Handler。
4.HandlerAdapter:處理器適配器
經過HandlerAdapter對處理器進行執行,這是適配器模式的應用,經過擴展適配器能夠對更多類型的處理器進行執行。
做用:按照特定的規則(HandlerAdapter要求的規則)去執行Handler
5.ViewResolver:視圖解析器(不須要程序員開發)
ViewResolver負責將處理結果生成View視圖,ViewResolver首先根據邏輯視圖名解析成物理視圖名,即具體的頁面地址,再生成View視圖對象,最後對View進行渲染將處理結果經過頁面的展現給用戶。SpringMVC框架提供了不少View視圖類型,包括:JSTLView、freemarkerView、pdfView等等.
做用:進行視圖解析,根據邏輯視圖名解析成真正的視圖(view)。
6.View視圖 (須要程序員開發 jsp)
View是一個接口,實現類支持不一樣的View類型(jsp、freemarker、pdf)
通常狀況下須要經過頁面標籤或者頁面模板技術將模型數據經過頁面展現給用戶,須要由程序員根據業務需求開發具體的頁面。
【流程圖】
【流程圖說明】
1.用戶發送請求至 前端控制器DispatcherServlet。
2.前端控制器DispatcherServlet收到請求後調用處理器映射器HandlerMapping。
3.處理器映射器HandlerMapping根據請求的Url找到具體的處理器,生成處理器對象Handler及處理器攔截器HandlerIntercepter(若是有則生成)一併返回給前端控制器DispatcherServlet。
4.前端控制器DispatcherServlet經過處理器適配器HandlerAdapter調用處理器Controller。
5.執行處理器(Controller,也叫後端控制器)
6.處理器Controller執行完後返回ModelAnView。
7.處理器映射器HandlerAdapter將處理器Controller執行返回的結果ModelAndView返回給前端控制器DispatcherServlet。
8.前端控制器DispatcherServlet將ModelAnView傳給視圖解析器ViewResolver。
9.視圖解析器ViewResolver解析後返回具體的視圖View。
10.前端控制器DispatcherServlet對視圖View進行渲染視圖(即:將模型數據填充至視圖中)
11.前端控制器DispatcherServlet響應用戶。