第一節 簡介:
SpringMVC是Spring框架的一個模塊,Spring和SpringMVC無需經過中間整合層進行整合。
SpringMVC是基於MVC的WEB框架。
MVC設計模式在B/S下的應用:前端
對上圖說明
①:瀏覽器發送請求到控制器(這裏要知道控制器的做用)
②:控制器不能處理請求必須交給模型層來處理接着去訪問數據庫
③:模型層將處理好的結果返回給控制層
④:控制層將邏輯視圖響應給瀏覽器(瀏覽器顯示的是渲染過的視圖)程序員
第二節 SpringMVC原理web
先記住原理。而後對原理進行解釋,這片文章的重點,也是截下來每一章都會涉及到。
原理圖以下:spring
對工做原理解釋說明:
1,用戶發送請求到springmvc框架提供的DispatcherServlet 這個前端控制器(瞭解struts2的朋友也都知道其實struts2也有一個前端控制器web.xml中的filter標籤就是)
2,前端控制器會去找處理器映射器(HandlerMapping),處理器映射器根據請求url找到具體的處理器,生成處理器對象及處理器攔截器(若是有則生成)一併返回給DispatcherServlet 。
3,根據處理器映射器返回的處理器,DispatcherServlet 會找「合適」的處理器適配器(HandlerAdapter)
4,處理器適配器HandlerAdpater會去執行處理器(Handler開發的時候會被叫成controller 也叫後端控制器在struts2中action也是一個後端控制器)執行以前會有轉換器、數據綁定、校驗器等等完成上面這些纔會去正在執行Handler
5,後端控制器Handler執行完成以後返回一個ModelAndView對象
6,處理器適配器HandlerAdpater會將這個ModelAndView返回前端控制器DispatcherServlet。前端控制器會將ModelAndView對象交給視圖解析器ViewResolver。
7,視圖解析器ViewResolver解析ModelAndView對象以後返回邏輯視圖。
8,前端控制器DispatcherServlet對邏輯視圖進行渲染(數據填充)以後返回真正的物理View並響應給瀏覽器。
對組件說明:
1,DispatherServlet:前端控制器
用戶請求到達前端控制器,至關於MVC中的C,而DispatherServlet是整個流程的核心,它來調用其餘組件來處理用戶的請求,前端控制器的存在下降了其餘組件之間的耦合度。
2,HandlerMapping:處理器映射器
它的做用就比如去看電影要拿着電影票根據電影票上面的座位號找到座位其中座位就是Handler,電影票以及上面的座位號就是URL
HandlerMapping 負責根據用戶請求找到Handler即處理器,springmvc提供了不一樣的映射器實現不一樣的映射方式,例如:配置文件方式,實現接口方式,註解方式等。
3,Handler:處理器
Handler是後端控制器,在前端控制器的控制下後端控制器對具體的用戶請求進行處理,Handler涉及到具體的用戶業務請求,因此通常狀況下須要程序員根據業務需求開發.
4,HandlerAdapter:處理器適配器
經過HandlerAdapter對處理器進行執行,這是適配器模式的應用,經過適配器能夠對更多類型的處理器進行執行。
播放的電影是3D的你看不清楚,所以電影院跟你說你要想看清電影就必須戴3D眼鏡。也就是說Handler知足必定的要求才能夠被執行。
5,ViewResolver:視圖解析器
ViewResolver負責將處理結果生成View視圖,ViewResolver首先根據邏輯視圖名解析成物理視圖名即具體的頁面地址,再生成View視圖對象,最後對View進行渲染將處理結果經過頁面展現給用戶。
感興趣的同窗,但願可以熟記這第一章。由於一旦你會struts1或者struts2等其餘,第一章看結束基本上就能知道這個框架是怎麼樣的了,剩餘的也就是怎麼實現。數據庫
做者: HansonQ
連接:http://www.imooc.com/article/3804
來源:慕課網後端