視頻教程地址:http://edu.51cto.com/sd/2cfc2
在講springMVC之前我們先來看一下什么是MVC模式
MVC:MVC是一種設計模式
MVC的原理圖:
分析:
M-Model 模型(完成業務邏輯:有javaBean構成,service+dao+entity)
V-View 視圖(做界面的展示 jsp,html……)
C-Controller 控制器(接收請求—>調用模型—>根據結果派發頁面)
springMVC是什么:
springMVC是一個MVC的開源框架,springMVC=struts2+spring,springMVC就相當於是Struts2加上sring的整合,但是這里有一個疑惑就是,springMVC和spring是什么樣的關系呢?這個在百度百科上有一個很好的解釋:意思是說,springMVC是spring的一個后續產品,其實就是spring在原有基礎上,又提供了web應用的MVC模塊,可以簡單的把springMVC理解為是spring的一個模塊(類似AOP,IOC這樣的模塊),網絡上經常會說springMVC和spring無縫集成,其實springMVC就是spring的一個子模塊,所以根本不需要同spring進行整合。
SpringMVC的原理圖:
看到這個圖大家可能會有很多的疑惑,現在我們來看一下這個圖的步驟:(可以對比MVC的原理圖進行理解)
第一步:用戶發起請求到前端控制器(DispatcherServlet)
第二步:前端控制器請求處理器映射器(HandlerMappering)去查找處理器(Handle):通過xml配置或者注解進行查找
第三步:找到以后處理器映射器(HandlerMappering)像前端控制器返回執行鏈(HandlerExecutionChain)
第四步:前端控制器(DispatcherServlet)調用處理器適配器(HandlerAdapter)去執行處理器(Handler)
第五步:處理器適配器去執行Handler
第六步:Handler執行完給處理器適配器返回ModelAndView
第七步:處理器適配器向前端控制器返回ModelAndView
第八步:前端控制器請求視圖解析器(ViewResolver)去進行視圖解析
第九步:視圖解析器像前端控制器返回View
第十步:前端控制器對視圖進行渲染
第十一步:前端控制器向用戶響應結果
看到這些步驟我相信大家很感覺非常的亂,這是正常的,但是這里主要是要大家理解springMVC中的幾個組件:
前端控制器(DispatcherServlet):接收請求,響應結果,相當於電腦的CPU。
處理器映射器(HandlerMapping):根據URL去查找處理器
處理器(Handler):(需要程序員去寫代碼處理邏輯的)
處理器適配器(HandlerAdapter):會把處理器包裝成適配器,這樣就可以支持多種類型的處理器,類比筆記本的適配器(適配器模式的應用)
視圖解析器(ViewResovler):進行視圖解析,多返回的字符串,進行處理,可以解析成對應的頁面