Spring MVC 使用總結(一)
阿新 • • 發佈:2019-01-09
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 詳細流程
- 使用者傳送請求到 DispatcherServlet。
- DispatcherServlet 對 URL 進行解析,通過 URL 呼叫 HandlerMapping,獲得 Handler 以及該物件對應的攔截器,返回 HandlerExecutionChain 物件。
- 選擇合適 Handler 物件的介面卡 HandlerAdapter,執行攔截器中的postHandle方法。
- 開始執行 Handler (Controller),向 DispatcherServlet 返回一個ModelAndView 物件。
- 根據返回的ModelAndView,選擇一個適合的ViewResolver,ViewResolve 建立一個 View 物件返回給 DispatcherServlet.
- DispatcherServlet 得到 View 物件,呼叫 View 物件中的 render 方法進行檢視渲染。
- 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 物件。