1. 程式人生 > >Spring MVC 使用總結(一)

Spring MVC 使用總結(一)

spring-Overview

Spring MVC 是什麼

從 Spring-Overview 圖中可以看出 Spring 支援 Web 應用。 Spring Web 層包括 spring-web, spring-webmvc,spring-websocket 和 spring-webmvc-portlet 模組。

spring-webmvc:也被稱為 Web-Servlet module,包含 MVC 模式的實現和 REST Web Service 的實現。

Spring MVC 詳細流程

spring mvc 詳細流程

  1. 使用者傳送請求到 DispatcherServlet。
  2. DispatcherServlet 對 URL 進行解析,通過 URL 呼叫 HandlerMapping,獲得 Handler 以及該物件對應的攔截器,返回 HandlerExecutionChain 物件。
  3. 選擇合適 Handler 物件的介面卡 HandlerAdapter,執行攔截器中的postHandle方法。
  4. 開始執行 Handler (Controller),向 DispatcherServlet 返回一個ModelAndView 物件。
  5. 根據返回的ModelAndView,選擇一個適合的ViewResolver,ViewResolve 建立一個 View 物件返回給 DispatcherServlet.
  6. DispatcherServlet 得到 View 物件,呼叫 View 物件中的 render 方法進行檢視渲染。
  7. DispatcherServlet 將渲染結果返回給客戶端。

Spring MVC 元件說明

DispatcherServlet:

  • 作用:
    DispatcherServlet 是整個流程控制的核心。

  • 優點:
    1)與其他 Web MVC 框架相似,Spring MVC 也是一個請求驅動的,圍繞一個核心 Servlet 設計的 MVC 框架。這些核心 Servlet 一般用來排程合適的處理器來處理請求,也提供 Web 應用開發中一些使用的功能。相比於其他的Servlet,DispatcherServlet 更好的集成了 Spring IOC 容器,這使得我們在平常開發中,可以使用 Spring 擁有的每一個特性。
    2)DispatcherServlet的存在降低了元件之間的耦合性。

HandleMapping:

  • 作用:
    DispatcherServlet 通過 HandleMapping 為每個請求找到正確的 Handler物件。

  • 返回值:
    HandlerExecutionChain物件。由目標 Handler 和 一組HandlerInterceptor組成。

HandlerAdapter:

  • 作用:
    1)呼叫HandlerAdapter.support 方法,選擇合適 Handler 的介面卡。
    2)呼叫HandlerAdapter.handle 方法進行目標 Handler 的呼叫,得到 ModelAndView 返回值。

ViewResolver

  • 作用:
    根據 ModelAndView 中給定的 viewName 資訊, 再結合相關配置,建立 View 物件。