1. 程式人生 > >Java SpringMVC框架 工作原理

Java SpringMVC框架 工作原理

SpringMVC框架介紹
1) Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裡面。
Spring 框架提供了構建 Web 應用程式的全功能 MVC 模組。使用 Spring 可插入的 MVC 架構,可以選擇是使用內建的 Spring Web 框架還是 Struts 這樣的 Web 框架。通過策略介面,Spring 框架是高度可配置的,而且包含多種檢視技術,例如 JavaServer Pages(JSP)技術、Velocity、Tiles、iText 和 POI。Spring MVC 框架並不知道使用的檢視,所以不會強迫您只使用 JSP 技術。
Spring MVC 分離了控制器、模型物件、分派器以及處理程式物件的角色,這種分離讓它們更容易進行定製。
2) Spring的MVC框架主要由DispatcherServlet、處理器對映、處理器(控制器)、檢視解析器、檢視組成。
SpringMVC原理圖


在這裡插入圖片描述
SpringMVC介面解釋
DispatcherServlet介面:
Spring提供的前端控制器,所有的請求都有經過它來統一分發。在DispatcherServlet將請求分發給Spring Controller之前,需要藉助於Spring提供的HandlerMapping定位到具體的Controller。
HandlerMapping介面:
能夠完成客戶請求到Controller對映。
Controller介面:
需要為併發使用者處理上述請求,因此實現Controller介面時,必須保證執行緒安全並且可重用。
Controller將處理使用者請求,這和Struts Action扮演的角色是一致的。一旦Controller處理完使用者請求,則返回ModelAndView物件給DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和檢視(View)。
從巨集觀角度考慮,DispatcherServlet是整個Web應用的控制器;從微觀考慮,Controller是單個Http請求處理過程中的控制器,而ModelAndView是Http請求過程中返回的模型(Model)和檢視(View)。
ViewResolver介面:
Spring提供的檢視解析器(ViewResolver)在Web應用中查詢View物件,從而將相應結果渲染給客戶。
SpringMVC執行原理

  1. 客戶端請求提交到DispatcherServlet
  2. 由DispatcherServlet控制器查詢一個或多個HandlerMapping,找到處理請求的Controller
  3. DispatcherServlet將請求提交到Controller
  4. Controller呼叫業務邏輯處理後,返回ModelAndView
  5. DispatcherServlet查詢一個或多個ViewResoler檢視解析器,找到ModelAndView指定的檢視
  6. 檢視負責將結果顯示到客戶端
    DispatcherServlet是整個Spring MVC的核心。它負責接收HTTP請求組織協調Spring MVC的各個組成部分。其主要工作有以下三項:
    1. 截獲符合特定格式的URL請求。
    2. 初始化DispatcherServlet上下文對應的WebApplicationContext,並將其與業務層、持久化層的WebApplicationContext建立關聯。
    3. 初始化Spring MVC的各個組成元件,並裝配到DispatcherServlet中。

具體例項可參考:http://blog.csdn.net/kkdelta/article/details/7274708

http://downpour.iteye.com/category/196182