17.2 Spring MVC的DispatcherServlet
回想一下,第16章建立了一个简单的MVC
框架,包含一个充当调度员的Servlet
。基于Spring MVC
,则无须如此。Spring MVC
中自带了一个开箱即用的DispatcherServlet
,该Servlet
的全名是org.springframework.web.servlet.DispatcherServlet
。
要使用这个Servlet
,需要把它配置在部署描述符(web.xml
文件)中,应用servlet
和servlet-mapping
元素,如下:
1 | <servlet> |
servlet
元素内的on-startup
元素是可选的。如果它存在,则它将在应用程序启动时装载Servlet
并调用该Servlet
的init
方法。若它不存在,则在该servlet
的第一个请求时加载。DispatcherServlet
将使用Spring MVC
诸多默认的组件。此外,初始化时,它会寻找一个在应用程序的WEB-INF
目录下的配置文件,该配置文件的命名规则如下:
1 | servletName-servlet.xml |
其中,servletName
是在部署描述符中的DispatcherServlet
的名称。如果这个DispatcherServlet
的名字是SpringMVC
,则在应用程序目录的WEB-INF
下对应的文件是SpringMVC-servlet.xml
。
此外,也可以把Spring MVC
的配置文件放在应用程序目录中的任何地方,你可以使用servlet
定义的init-param
元素,以便DispatcherServlet
加载到该文件。init-param
元素拥有一个值为contextConfigLocation
的param-name
元素,其param-value
元素则包含配置文件的路径。例如,可以利用init-param
元素更改默认的文件名和文件路径为WEB-INF/config/simple-config.xml
:
1 | <servlet> |