springmvc請求處理入口:DispatcherServlet
閑來無事。看spring官方文檔,整理一些知識點,為避免遺忘,來此記錄。
springmvc請求流程圖
DispatcherServlet(前置控制器)是一個真正的Servlet(集成HttpServlet的基礎類),常配置在web.xml。主要作用是處理url映射。如下所示:
DispatcherServlet基本配置
DispatcherServlet的初始化參數:
1.contextConfigLocation-Context:配置路徑
2.Namespace:在WebApplicationContext中的命名空間,默認xx-servlet
3.contextClass:實現WebApplicationContext的類,能夠實例化被這個Servlet所使用的context。在默認情況下,XmlWebApplication會被使用。
1.2 WebApplicationContext
在Spring中AppliationContext(應用程序上下文)的實例的生效範圍能被限定。在Web MVC框架中,每一個DispatcherServlet有它自己的WebApplicationContext。
webApplicationContext其實是ApplicationContext的擴展,主要實現了一些Web工程有必要的特性,如主題解析等等。
//配置過程中,註意SpringMVC是Spring的子容器
在WebApplication中的特殊bean類型,也是DispatcherServlet的主要職責:
1.HandlerMapping處理器映射器
2.HandlerAdapter處理器適配器
3.HandlerExceptionResolver處理器異常解析器
4.ViewResolver視圖解析器
5.LocaleResolver & LocaleContextResolver地區解析器和地區Context解析器
6.ThemeResolver主題解析器
7.MultipartResolver多部件解析器
8.FlashMapManager
1.3 contextLoaderListener初始化上下文和DispatcherServlet中處理之間的關系
簡單地說,contextLoaderListener初始化上下文是針對整個Spring框架的applicationContext,加載的Bean對整個應用程序都是共享的,一般如:application*.xml;而DispatcherServlet是SpringMVC子容器的上下文,只加載WEB相關的組件,一般單獨配置如:springmvc.xml。
springmvc請求處理入口:DispatcherServlet