1. SpringMVC執行流
1.1 SpringMVC三大核心組件
- HandlerMapping處理器映射器:建立地址與方法的映射,
HandlerMapping負責根據用戶請求url找到Handler即處理器,springmvc提供了不同的映射器實作不同的映射方式,例如:組態檔方式,實作介面方式,注解方式等,
- HandlerAdapter處理器配接器:根據地址呼叫方法,
Handler 是繼DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler對具體的用戶請求進行處理,
- ViewResolver 視圖決議器:處理ModelAndView資料和視圖,
ViewResolver通過HandlerAdapter對處理器進行執行,這是配接器模式的應用,通過擴展配接器可以對更多型別的處理器進行執行,
1.2 SpringMVC執行流程圖

1.3 Spring執行流程具體步驟(參考圖)
- 用戶發送請求至前端控制器DispatcherServlet,
- DispatcherServlet收到請求呼叫HandlerMapping處理器映射器,
- 處理器映射器根據請求url找到具體的處理器,生成處理器物件及處理器攔截器(如果有則生成)一并回傳給DispatcherServlet,
- DispatcherServlet通過HandlerAdapter處理器配接器呼叫處理器,
- 執行處理器(Controller層,也叫后端控制器),
- Controller執行完成回傳資料和視圖(ModelAndView),
- HandlerAdapter將controller執行結果ModelAndView回傳給DispatcherServlet,
- DispatcherServlet將ModelAndView傳給ViewReslover視圖決議器,
- ViewReslover決議后回傳具體的View視圖(JSP / HTML),
- DispatcherServlet對View進行渲染視圖(即將模型資料填充至視圖中),
- DispatcherServlet回應用戶,用戶看到界面和資料,
2. 創建SpringMVC的三大組件
??SpringMVC中默認提供的三大組件有可能過時,我們可以手動設定這三大組件,一般只需要設定ViewResolver 視圖決議器,設定它的前綴prefix和后綴suffix,
2.1 手動一個個的設定處理器映射器(不推薦)
<!--方式1:手動一個個設定 -->
<!-- 處理器映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<!--處理器配接器-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
2.2 模型驅動配置處理器映射器和處理器配接器,配置視圖決議器【***】
<!--方式2:配置處理器映射器和處理器配接器 -->
<!-- 在選擇mvc標簽時,一定要選擇最后的路徑是/mvc的選項 -->
<!-- 這行配置可以替換掉上邊的兩行配置(一步步設定) -->
<mvc:annotation-driven/>
<!-- 配置視圖決議器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 前綴和后綴 相當于 //WEB-INF/jsp/Xxx.jsp-->
? <!--定義頁面路徑的前綴-->
? <property name="prefix" value="/WEB-INF/jsp/"/>
? <!--定義頁面路徑的后綴-->
? <property name="suffix" value=".jsp"/>
</bean>
2.3【注意】如果mvc標簽無效,頭檔案模板,
<mvc:annotation-driven/>無效,可能是頭檔案不對,下面是一個參考,
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
? xmlns:context="http://www.springframework.org/schema/context"
? xmlns:mvc="http://www.springframework.org/schema/mvc"
? xsi:schemaLocation="http://www.springframework.org/schema/beans
? http://www.springframework.org/schema/beans/spring-beans.xsd
? http://www.springframework.org/schema/context
? http://www.springframework.org/schema/context/spring-context.xsd
? http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/173774.html
標籤:java
上一篇:案例之-塊的作用域
