SpringMVC的核心架構

SpringMVC的核心架構:

具體流程:

(1)首先用戶發送請求——>DispatcherServlet,前端控制器收到請求後自己不進行處理,而是委託給其他的解析器進行處理,作為統一訪問點,進行全局的流程控制;

(2)DispatcherServlet——>HandlerMapping,映射處理器將會把請求映射為HandlerExecutionChain對象(包含一個Handler處理器(頁面控制器)對象、多個HandlerInterceptor攔截器)對象;

(3)DispatcherServlet——>HandlerAdapter,處理器適配器將會把處理器包裝為適配器,從而支持多種類型的處理器,即適配器設計模式的應用,從而很容易支持很多類型的處理器;

(4)HandlerAdapter——>調用處理器相應功能處理方法,並返回一個ModelAndView對象(包含模型數據、邏輯視圖名);

(5)ModelAndView對象(Model部分是業務對象返回的模型數據,View部分為邏輯視圖名)——> ViewResolver, 視圖解析器將把邏輯視圖名解析為具體的View;

(6)View——>渲染,View會根據傳進來的Model模型數據進行渲染,此處的Model實際是一個Map數據結構;

(7)返回控制權給DispatcherServlet,由DispatcherServlet返回響應給用戶,到此一個流程結束。

二、核心類與接口:

先來了解一下,幾個重要的接口與類。現在不知道他們是幹什麼的沒關係,先混個臉熟,為以後認識他們打個基礎。

DispatcherServlet -- 前置控制器

SpringMVC的核心架構

HandlerMapping接口 -- 處理請求的映射

HandlerMapping接口的實現類:

SimpleUrlHandlerMapping 通過配置文件,把一個URL映射到Controller

DefaultAnnotationHandlerMapping 通過註解,把一個URL映射到Controller類上

SpringMVC的核心架構

HandlerAdapter接口 -- 處理請求的映射

AnnotationMethodHandlerAdapter類,通過註解,把一個URL映射到Controller類的方法上

SpringMVC的核心架構

Controller接口 -- 控制器

由於我們使用了@Controller註解,添加了@Controller註解註解的類就可以擔任控制器(Action)的職責,

所以我們並沒有用到這個接口。

SpringMVC的核心架構

HandlerInterceptor 接口--攔截器

無圖,我們自己實現這個接口,來完成攔截的器的工作。

ViewResolver接口的實現類

UrlBasedViewResolver類 通過配置文件,把一個視圖名交給到一個View來處理

InternalResourceViewResolver類,比上面的類,加入了JSTL的支持

SpringMVC的核心架構

View接口

JstlView類

SpringMVC的核心架構

LocalResolver接口

SpringMVC的核心架構

HandlerExceptionResolver接口 --異常處理

SimpleMappingExceptionResolver實現類

SpringMVC的核心架構

ModelAndView類

無圖。

SpringMVC的核心架構

SpringMVC的核心架構


分享到:


相關文章: