前言:
SpringMVC框架,最关键的一个任务就是配置DispatcherServlet。
DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,
Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标
Controller来处理,是配置spring MVC的第一步。
我们都知道,在开发ssm项目时,springmvc的配置文件一般都是在web.xml里面指定位置的。但是,前几天就看了到了一种并未指定springmvc配置文件位置的做法,觉得springmvc的配置文件应该是有默认位置的。然后就在网上百度了一下。确实,有两种放法:
第一种方式:
就是我刚开始说的,在web.xml配置文件中指定springmvc配置文件的位置。
当web.xml中DispatcherServlet配置声明中,已经明确DispatcherServlet前端控制器配置文件的位置时,则必须将前端控制器的配置文件放在src下面,或者在java resources下面新建一个config的resource folder,把配置文件都放在这个资源文件夹下面。
这种方式也是用的最多的一种。
<!-- springmvc 前端控制器 -->
<servlet>
<servlet-name>dispatcherSerlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherSerlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
上面代码中,明确了contextConfigLocation的地址为:classpath:(即在classess文件夹下面),而且命名为springmvc.xml(或者其他名称都可以),指定配置文件位置时,这个配置文件的名字可以随便取。
第二种方式:
当web.xml中DispatcherServlet配置声明中,没有明确DispatcherServlet前端控制器配置文件的位置时,则系统默认DispatcherServlet前端控制器配置文件放在WEB-INF文件夹下。
<!-- Spring MVC 的Servlet,它将加载WEB-INF/springDispatcherServlet-servlet.xml 的配置文件,以启动Spring MVC模块-->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
上面代码声明了一个命名为springDispatcherServlet的前端控制器(DispatcherServlet),那么系统默认在/WEB-INF下,而且必须命名为:springDispatcherServlet-servlet.xml。(这种命名是规定好的,前端控制器的名字-servlet这种形式。)