SpringMVC執行詳細流程與springmvc配置文件

SpringMVC執行詳細流程與springmvc配置文件

SpringMVC執行詳細流程

在這裏插入圖片描述

  1. 用戶發送請求至前端控制器DispatcherServlet,判斷springmvc中是否存在與請求相應的映射,存在直接轉“3”。
  2. 是否配置<mvc:default-servlet-handler>,是則訪問目標靜態資源,否則前端404+後端控制檯報錯"No mapping found for HTTP request with URI [/xxx/xxx] in DispatcherServlet" 。
  3. DispatcherServlet收到請求調用處理器映射器HandlerMapping。
  4. 處理器映射器根據請求url找到具體的處理器,生成處理器執行鏈HandlerExecutionChain(帶業務對象方法和攔截器)一併返回給DispatcherServlet。
  5. DispatcherServlet根據處理器Handler獲取處理器適配器HandlerAdapter執行HandlerAdapter處理一系列的操作,如:參數封裝,數據格式轉換,數據驗證等操作。
  6. 調用攔截器的preHandler方法
  7. 執行處理器Handler(Controller,也叫頁面控制器)。
  8. Handler執行完成返回ModelAndView
  9. 調用攔截器的postHandler方法
  10. HandlerAdapter將Handler執行結果ModelAndView返回到DispatcherServlet
  11. DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器
  12. ViewReslover解析後返回具體View
  13. DispatcherServlet對View進行渲染視圖(即將模型數據model填充至視圖中)。
  14. 調用攔截器的afterHandler方法
  15. DispatcherServlet響應用戶。
  • 流程爲我自己的理解與原作者文章與整合,原文出處:https://www.jianshu.com/p/8a20c547e245

springmvc配置文件

web.xml

最基本必配的前端控制器

   <!-- springMVC的前端控制器 -->
   <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--init-param配置文件的位置 如果springmvc.xml是以xxx-servlet.xml命名,並且位於/WEB-INF下則不需要配置 -->
        <init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:springmvc.xml</param-value>
  	</init-param>
  	<load-on-startup>1</load-on-startup><!-- 1表示立即加載 -->
  </servlet>
  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

springmvc.xml

  1. 類包掃描
  2. 視圖解析器
  3. 靜態資源處理器與註解驅動器
<beans>
	<context:component-scan base-package="com.*" >
        
	</context:component-scan>

	<!-- 配置視圖解析器 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/page/"/><!-- 前綴 -->
		<property name="suffix" value=".jsp"/>><!-- 後綴 -->
	</bean>
	
    <mvc:annotation-driven /><!-- 使靜態資源可被訪問 -->
    <mvc:default-servlet-handler/><!-- 配置註解驅動後不配這個無法正常訪問requestMapping -->
</beans>

vlet-handler/>






  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章