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> |