SpringMVC之DispatcherServlet配置文件应该放在哪里呢
DispatcherServlet配置文件应该放在哪里
DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置spring MVC的第一步。
但是,我们在搭建SpringMVC框架时,往往总是把DispatcherServlet的配置文件放错位置。
网上有的说:springDispatcherServletMVC-servlet.xml(暂且命名这么一个springDispatcherServletMVC的dispatchservlet配置文件)应该放在WEB-INF下面(与web.xml放一起);
有的说:应该直接把springDispatcherServletMVC-servlet.xml放在src文件夹下面;
有的说:在java resources下面新建一个config的resource folder,把配置文件都放在这个资源文件夹下面。那么到底哪种是正确的呢?
答案是:这个要根据web.xml中DispatcherServlet的配置声明有关系。
第一种情况
当web.xml中DispatcherServlet配置声明中,没有明确DispatcherServlet前端控制器配置文件的位置时,则系统默认DispatcherServlet前端控制器配置文件放在WEB-INF文件夹下。
例如:
web.xml部分代码如下:
<!--信息转发器,该servlet名为mvc-dispatcher(名称可修改,但必须与mvc-dispatcher-servlert.xml的前缀名相同),用于拦截请求(url-pattern为 / ,说明拦截所有请求),并交由Spring MVC的后台控制器来处理。这一项配置是必须的--> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
上面代码声明了一个命名为mvc-dispatchert的前端控制器(DispatcherServlet),并且没有指定该servlet配置文件的路径,那么系统将以默认名字mvc-dispatcher-servlet.xml在默认路径/WEB-INF下寻找它,位置不正确,名字不正确,都会报错。
第二种情况
当web.xml中DispatcherServlet配置声明中,已经明确DispatcherServlet前端控制器配置文件的位置时,则必须将前端控制器的配置文件放在src下面,不能放在webcontent(webapp)下了,当然,在src的各级子文件夹中也是可以的。
一般放在java resources下面,或者在resources下新建一个config的文件夹专门用来存放配置文件,文件结构如下:
web.xml部分代码如下:
<!--信息转发器,该servlet配置文件存放在/resources/config下,用于拦截请求(url-pattern为 / ,说明拦截所有请求),并交由Spring MVC的 后台控制器来处理。这一项配置是必须的--> <servlet> <servlet-name>mvc-dispatcherhahaha</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/mvc-dispatcher-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcherhahaha</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
上面代码中,明确了contextConfigLocation的地址为:classpath:(即在classes文件夹下面)。
并且请注意,此处我估计将配置文件中的servlet类命名为mvc-dispatcherhahaha,就是为了与配置文件名称mvc-dispatcher-servlet.xml区分开来,因此可以看出,此处命名是任意的,只需再位置参数init-param中体现出来即可。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
java ArrayList.remove()的三种错误用法以及六种正确用法详解
这篇文章主要介绍了java ArrayList.remove()的三种错误用法以及六种正确用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-01-01SpringBoot实现读取YML,yaml,properties文件
yml,yaml,properties三种文件都是用来存放配置的文件,一些静态数据,配置的数据都会存放到里边。本文主要为大家整理了SpringBoot实现读取YML,yaml,properties文件的方法,需要的可以参考一下2023-04-04FileUtils扩展readURLtoString读取url内容
这篇文章主要介绍了FileUtils扩展readURLtoString使用其支持读取URL内容为String,支持带POST传大量参数,大家参考使用吧2014-01-01
最新评论