上一篇深刻淺出Spring(四) Spring實例分析的博文中,我們已經能夠了解Spring框架的運行原理和實現過程,接下來我們繼續講解Spring的一個延伸產品——Spring MVC web
在開始演示Spring以前,首先來介紹一下Sprig MVC。Spring MVC是一個基於Model2的MVC框架,它圍繞DispatcherServlet這個核心類開展,DispatcherServlet是Spring MVC的負責截獲客戶端請求,組織不一樣的組件進行請求的處理,對處理的結果進行響應處理。總體實現框架圖以下圖所示:spring
大體瞭解Spring MVC以後,咱們作一個簡單Spring MVC的實例分析,參考實例已在文章末尾給出連接地址。分析主要從以下幾個方面進行:服務器
A、啓用框架併發
啓用Spring MVC與Struts1類似,就是一個簡單的Servlet。經過客戶端發送Http請求,web應用服務器接受並判斷是否匹配Spring MVC核心類DispatcherServlet的請求路徑,若是匹配則轉發給DispatcherServlet進行處理。具體的web.xml文件配置參考給出的參考實例。對應上圖的以下部分:app
這一部分是Servlet運行過程,與Spring MVC框架自己無關,僅僅是將請求轉發到了Spring MVC的核心類,若是有疑惑請參考以前的文章初識Servlets對Servlet運行過程進行了解。 框架
B、框架執行學習
Spring MVC框架的執行比較複雜,這裏簡單給你們介紹一下,主要分爲以下兩步:
1)、DispatcherServelt 接受到Http請求以後,根據這個請求信息以及HandleMapping的配置找處處理請求的處理器Handler。
2)、找到Handler以後,經過HandlerAdapter對Handler進行封裝,再以統一的適配器接口調用Handler。spa
這裏介紹的有點抽象,簡單理解就是根據URL地址和這個URL與具體實現類的映射關係(HandleMapping)找到這個實現類(Handler)。具體實現調用的過程是經過使用適配器(HandlerAdapter)對具體實現類(Handler)進行封裝,而後調用再統一調用。對應上圖的以下部分:.net
映射的配置(HandleMapping)方式具體實現主要有兩種方式一種是配置文件(具體參考實例代碼),另外一種是註解實現(具體參考實例代碼)。xml
C、框架反饋
Spring MVC框架最終能夠反饋給客戶端的響應消息的類型很是豐富,能夠是一個普通的HTML頁面,一個XML或JSON串,也能夠是一張圖片或一個PDF文檔等不一樣的媒體形式。這裏簡單介紹一下反饋消息的流程,具體以下;
1)、Handler處理完成以後,會返回給DispatcherServlet一個ModelAndView
2)、DispatcherServlet經過ViewResolver中的相關配置,將ModelAndView包含的視圖邏輯名解析成真實的視圖對象View
3)、接下來,DispatcherServlet就使用這個View對象對ModelAndView中的模型數據進行視圖渲染併發送到客戶端。
這個過程具體對應爲上圖的以下部分:
以上部分理解起來比較簡單與Struts框架基本雷同,這裏咱們就不作多餘的介紹了。
到此關於Spring MVC框架的相關內容,咱們就先介紹這麼多,之後有時間,我再慢慢給你們介紹。建議你們對比以前的Struts學習,分析二者的不一樣點和類似之處,這樣咱們理解和使用就會變得更加靈活。
參考實例代碼下載連接: