1. 程式人生 > >springmvc請求處理入口:DispatcherServlet

springmvc請求處理入口:DispatcherServlet

加載 容器 listener 基本 shm spring框架 作用 控制器 web.xml

閑來無事。看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