1. 程式人生 > >SpringMVC系列一

SpringMVC系列一

模式 config eight 不同 ble 填充 加載 png could not

首先介紹一下SpringMVC的執行流程:如圖

技術分享圖片

1.用戶在客戶端發送請求,經過前端控制器DispatcherServlet,請求處理器處理,返回ModelAndView返回結果到前端控制器;

2.前端控制器在將處理的結果返回到JSP頁面,經過渲染視圖以後,響應客戶端,最終顯示在用戶;

技術分享圖片

架構流程

1、用戶發送請求至前端控制器DispatcherServlet

2、DispatcherServlet收到請求調用HandlerMapping處理器映射器。

3、處理器映射器根據請求url找到具體的處理器,生成處理器對象(handler)及處理器攔截器(如果有則生成)一並返回給DispatcherServlet。

4、DispatcherServlet通過HandlerAdapter處理器適配器調用處理器

5、執行處理器(Controller,也叫後端控制器)。

6、Controller執行完成返回ModelAndView

7、HandlerAdapter將controller執行結果ModelAndView返回給DispatcherServlet

8、DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器

9、ViewReslover解析後返回具體View

10、 DispatcherServlet對View進行渲染視圖(即將模型數據填充至視圖中)。

11、 DispatcherServlet響應用戶

組件說明

以下組件通常使用框架提供實現:

DispatcherServlet:前端控制器

用戶請求到達前端控制器,它就相當於mvc模式中的c,dispatcherServlet是整個流程控制的中心,由它調用其它組件處理用戶的請求,dispatcherServlet的存在降低了組件之間的耦合性。

HandlerMapping:處理器映射器

HandlerMapping負責根據用戶請求url找到Handler即處理器,springmvc提供了不同的映射器實現不同的映射方式,例如:配置文件方式,實現接口方式,註解方式等。

Handler:處理器

Handler 是繼DispatcherServlet前端控制器的後端控制器,在DispatcherServlet的控制下Handler對具體的用戶請求進行處理。

由於Handler涉及到具體的用戶業務請求,所以一般情況需要程序員根據業務需求開發Handler。

HandlAdapter:處理器適配器

通過HandlerAdapter對處理器進行執行,這是適配器模式的應用,通過擴展適配器可以對更多類型的處理器進行執行。

ViewResolver:視圖解析器

View Resolver負責將處理結果生成View視圖,View Resolver首先根據邏輯視圖名解析成物理視圖名即具體的頁面地址,再生成View視圖對象,最後對View進行渲染將處理結果通過頁面展示給用戶。

View:視圖

springmvc框架提供了很多的View視圖類型的支持,包括:jstlViewfreemarkerViewpdfView等。我們最常用的視圖就是jsp

一般情況下需要通過頁面標簽或頁面模版技術將模型數據通過頁面展示給用戶,需要由程序員根據業務需求開發具體的頁面。

springmvc的各個組件中,處理器映射器、處理器適配器、視圖解析器稱為springmvc的三大組件。

需要用戶開發的組件有handlerview


配置前端控制器:前端控制器SpringMVC的核心;在web.xml中進行配置

<!-- 配置前端控制器 -->
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<!-- 配置上下文 -->
  	<!-- 如果沒有配置上下文,默認會選擇/WEB-INF/[servlet-name]-servlet.xml 
  	異常:Caused by: java.io.FileNotFoundException: 
  	Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]
  	-->
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:springmvc.xml</param-value>
  	</init-param>
  </servlet>
  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>*.action</url-pattern>
  </servlet-mapping>

默認會加載視圖解析器,處理器映射器、處理器映射器等在DispatcherServlet.properties

u ViewResolver:視圖解析器

View Resolver負責將處理結果生成View視圖,View Resolver首先根據邏輯視圖名解析成物理視圖名即具體的頁面地址,再生成View視圖對象,最後對View進行渲染將處理結果通過頁面展示給用戶。

u View:視圖

springmvc框架提供了很多的View視圖類型的支持,包括:jstlViewfreemarkerViewpdfView等。我們最常用的視圖就是jsp

一般情況下需要通過頁面標簽或頁面模版技術將模型數據通過頁面展示給用戶,需要由程序員根據業務需求開發具體的頁面。

說明:在springmvc的各個組件中,處理器映射器、處理器適配器、視圖解析器稱為springmvc的三大組件。

需要用戶開發的組件有handlerview

SpringMVC系列一