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