1. 程式人生 > >Spring MVC流程

Spring MVC流程

spring 備註 使用 ner rac 通過 gdi ade pri

具體流程

1.請求離開客戶端,帶上用戶所請求內容的信息,如url、參數等

2.請求到達DispatcherServlet,這是一個前端控制器,一個用於調度的Servlet,此時它的職責是,將請求發送給不同的控制器(controller)

3.請求到達Controller後卸下負載(信息),等待Controller處理,而Controller完成邏輯處理,生成一些信息,稱為Model(模型),這種原始的信息需要進行格式化以便呈現給用戶(例如HTML的方式)。

4.Controller將Model打包,標示用於渲染的視圖名,連同請求一起返送給DispatcherServlet

備註: 調度完全由DispatcherServlet處理,實現Controller和View的解耦

此視圖名不是真實視圖名,而是邏輯名稱

5.Dispatcher Servlet通過view resolver(視圖解析器)得出真實視圖名

6.對應的視圖通過Model渲染出輸出

7.輸出通過響應對象返回給客戶端

容器間的關系:

web容器->servlet容器(servlet上下文)->spring容器->spring MVC子容器

常用的servlet容器: Tomcat,值得註意的是SpringBoot默認使用Tomcat作為嵌入式的Servlet容器;

-------------------------------------------------------------------------

項目操作流程

配置DispatcherServlet

前提:

1.javax.servlet.ServletContainerInitializer用來配置servlet容器 s

2.SpringServletContainerInitializer實現了它 s1實現s

3.SpringServletContainerInitializer查找實現WebApplicationInitializer的類 s1查找w

4.AbstractAnnotationConfigDispatcherServletInitializer實現WebApplicationInitializer w1實現w

同時它能創建DispathcerServlet,DispathcerServlet啟動時會創建Spring應用上下文

其實AbstractAnnotationConfigDispatcherServletInitializer不僅創建DispatcherServlet,也會創建ContextLoaderListener

DispatcherServlet: 創建spring應用上下文,加載屬於web組件的bean,例如控制器、視圖解析器及處理器映射 getServletConfigClasses

ContextLoaderListener: 創建??應用上下文,加載其他bean,例如驅動應用後端的中間層和數據層組件 getRootConfigClasses

啟用Spring MVC

SpittrWebAppInitializer

WebConfig

@Configuration

@EnableWebMvc

內部配置視圖解析器 @Bean

重寫對靜態資源的處理

RootConfig

Spring MVC流程