1. 程式人生 > >深入淺出Spring(五) SpringMVC

深入淺出Spring(五) SpringMVC

  上一篇深入淺出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執行過程進行了解。

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學習,分析兩者的不同點和相似之處,這樣我們理解和使用就會變得更加靈活。

參考例項程式碼下載連結: