SpringMVC之DispatcherServlet配置文件应该放在哪里呢

 更新时间:2023年11月03日 09:40:06   作者:鱼哥  
这篇文章主要介绍了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中堆和栈的区别分析

    java中堆和栈的区别分析

    这篇文章主要介绍了java中堆和栈的区别,分析了Java中堆和栈的原理及使用时的注意事项,需要的朋友可以参考下
    2014-09-09
  • log4j日志格式加入自定义字段信息方式

    log4j日志格式加入自定义字段信息方式

    这篇文章主要介绍了log4j日志格式加入自定义字段信息方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Maven本地jar引用的实现方法

    Maven本地jar引用的实现方法

    这篇文章主要介绍了Maven本地jar引用的实现方法的相关资料,希望通过本文能帮助到大家,实现这样的功能,需要的朋友可以参考下
    2017-10-10
  • Java基础之数组详解

    Java基础之数组详解

    这篇文章主要介绍了Java基础之数组详解,文中有非常详细的代码示例,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-04-04
  • java中hashCode、equals的使用方法教程

    java中hashCode、equals的使用方法教程

    hashCode()和equals()定义在Object类中,这个类是所有java类的基类,所以所有的java类都继承这两个方法。下面这篇文章主要给大家介绍了关于java中hashCode、equals的使用方法,需要的朋友可以参考下。
    2017-12-12
  • Java日常练习题,每天进步一点点(2)

    Java日常练习题,每天进步一点点(2)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • 基于Class.forName()用法及说明

    基于Class.forName()用法及说明

    这篇文章主要介绍了基于Class.forName()用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 使用Java生成jpg与压缩图片为jpg文件的代码示例

    使用Java生成jpg与压缩图片为jpg文件的代码示例

    这篇文章主要介绍了使用Java生成jpg与压缩图片为jpg文件的代码示例,都是对com.sun.image.codec.jpeg这个包的应用,需要的朋友可以参考下
    2015-11-11
  • nacos服务无法注册到nacos服务中心问题及解决

    nacos服务无法注册到nacos服务中心问题及解决

    本文详细描述了在Linux服务器上使用Tomcat启动Java程序时,服务无法注册到Nacos的排查过程,通过一系列排查步骤,发现问题出在Tomcat的启动机制上,导致无法自动触发服务注册事件,最终,通过实现`ApplicationRunner`接口,手动触发服务注册事件,解决了问题
    2025-11-11
  • 解决Maven项目加载spring bean的配置xml文件会提示找不到问题

    解决Maven项目加载spring bean的配置xml文件会提示找不到问题

    这篇文章主要介绍了解决Maven项目加载spring bean的配置xml文件会提示找不到问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08

最新评论