在前面几节中,我们了解到在SpringMVC 框架中,DispatcherServlet是负责分发请求的。今天小博老师带领大家一起详细的学习下DispatcherServlet的使用方法。首先我们要了解如何在web.xml中配置dispatcherServlet:
<servlet> <servlet-name>Bsoweifeng</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>chapter2</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> |
load-on-startup:意味着启动容器时就执行该Servlet初始化;
url-pattern:表示哪些请求交给SpringMVC处理, “/” 表示拦截所有请求。
在以上的DispatcherServlet配置中默认使用WebApplicationContext作为上下文,Spring默认配置文件为“/WEB-INF/[servlet名字]-servlet.xml”。

DispatcherServlet支持配置自定义初始化参数,覆盖默认配置:
参数 | 描述 |
contextClass | 实现WebApplicationContext接口的类,当前的servlet用它来创建上下文。如果这个参数没有指定, 默认使用XmlWebApplicationContext。 |
contextConfigLocation | 传给上下文实例(由contextClass指定)的字符串,用来指定上下文的位置。这个字符串可以被分成多个字符串(使用逗号作为分隔符) 来支持多个上下文(在多上下文的情况下,如果同一个bean被定义两次,后面一个优先)。 |
namespace | WebApplicationContext命名空间。默认值是[server-name]-servlet。 |
对上面的配置案例进行修改:
<servlet> <servlet-name>Bsoweifeng</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> <init-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:spring-servlet-config.xml </param-value> </init-param> </servlet> |
如果使用如上配置,SpringMVC将加载“classpath:spring-servlet-config.xml”初始化上下文,而不再使用默认的“/WEB-INF/[servlet名字]-servlet.xml”。