2.3.2 Spring MVC的DispatcherServlet
2.3.2 Spring MVC的DispatcherServlet
DispatcherServlet
在许多的MVC框架中,都包含一个用于调度控制的Servlet。Spring MVC也提供了个名为org.springframework.web.servlet.DispatcherServlet的Servlet充当前端控制器,所有的请求驱动都围绕这个DispatcherServlet来分派请求。
DispatcherServlet配置
DispatcherServlet是一个Servlet(它继承自HttpServlet基类),因此使用时需要把它配置在Web应用的部署描述符web.xml文件当中,配置信息如下:
1 | <!-- 定义Spring MVC的前端控制器 --> |
以上是标准Java EE Servlet的配置。配置了一个DispatcherServlet,该Servlet在Web应用程序启动时立即加载,
指定Spring MVC配置文件的路径
通过 servlet-name元素 指定配置文件的路径
DispatcherServlet加载时会需要一个Spring MVC的配置文件,默认情况下,应用会去应用程序文件夹下的WEB-INF文件夹下査找对应的[servlet-name]-servlet.xml文件,例如,本例的servlet-name元素的值是springmvc,则默认查找的就是/WEB-INF/springmvc-servlet.xml这个文件。
通过 init-param元素 指定配置文件的路径
可以把Spring MVC的配置文件放到应用程序文件夹中的任何地方,用servlet元素的init-param子元素进行描述,
- 本例的
param-name元素的值contextConfigLocation表示参数名称, param-value元素的值/WEB-INF/springmvc-config.xml则表示Spring MVC的配置文件路径和名称。
则Dispatcher Servlet会查找/WEB-INF/springmvc-config.xml文件,作为Spring MVC的配置文件,
Spring MVC配置文件的解析
解析Spring MVC配置文件的内容并根据文件配置信息创建一个WebApplicationContext容器对象,也称为上下文环境。 WebApplicationContext继承自ApplicationContext容器。它的初始化方式和BeanFactory、 ApplicationContext有所区别,因为WebApplicationContext需要ServletContext实例,也就是说,它必须在拥有Web容器的前提下才能完成启动Spring Web应用上下文的工作。有了WebApplicationContext容器,开发者就可以很自然地使用Spring的IOC、AOP等其他功能了.