说明:社区版的idea不支持spring和web,所以在开发时跟旗舰版有些许不同,不同于旗舰版在加载spring,web子模块时社区版需要手动加载tomcat下的所有lib项目以及pro下加载的所有的依赖项lib到libraries中。此外社区版idea在springmvc开发时由于不直接支持web项目所以需要在pro项目的src目录下新建一个webapp目录来支持。/webapp/WEB-INF
最近开始学习restfulAPI,做了一个springmvc简单项目开发,在对于servlet.xml配置文件的存放路径时出来一个问题,当把servlet.xml文件放在resources下时,再编译时直接报错找不到该配置文件。servlet.xml默认是放在/webapp/WEB-INF下。并且配置时需要注意以下几项:
编译输出路径不需要修改,默认是在src/out下
把resource和webapp两个目录设置为resource
模块编译输出路径需要修改为pro\target\classes
libraries中需要+添加tomcat中所有lib文件架包以及pro下libaraies中的所有外加载的依赖包
加载liabraies中的所有依赖
加载run configuration中deployment执行路径为pro/src/main/webapp
编译,build,clean,run最终的target下需要加载出这些文件才能成功运行。
将webapp,resource标记为resource的目的是因为resource下的文件在编译时会出现在target目录下。如果只需要这两个目录下的某某些文件加载出来,可以使用pom.xml设置resources.
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/webapp</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
servlet.xml文件存放的路径跟web.xml的声明有关系。
第一种情况:
当web.xml中DispatcherServlet配置声明中,没有明确DispatcherServlet前端控制器配置文件的位置时,则系统默认DispatcherServlet前端控制器配置文件放在WEB-INF文件夹下。并且没有指定该servlet配置文件的路径,那么系统将以默认名字mvc-dispatcher-servlet.xml在默认路径/WEB-INF下寻找它,位置不正确,名字不正确,都会报错。
第二种情况:
当web.xml中DispatcherServlet配置声明中,已经明确DispatcherServlet前端控制器配置文件的位置时,则必须将前端控制器的配置文件放在src下面,不能放在webcontent(webapp)下了,当然,在src的各级子文件夹中也是可以的。一般放在java resources下面,或者在resources下新建一个config的文件夹专门用来存放配置文件。
<!--信息转发器,该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>
————————————————
版权声明:本文为CSDN博主「鱼哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhijiannnn/article/details/80908609
明确了contextConfigLocation的地址为:classpath:(即在classes文件夹下面)。并且请注意,此处我估计将配置文件中的servlet类命名为mvc-dispatcherhahaha,就是为了与配置文件名称mvc-dispatcher-servlet.xml区分开来,因此可以看出,此处命名是任意的,只需再位置参数init-param中体现出来即可。
参考链接:https://www.cnblogs.com/niceyoo/p/14090782.html
https://blog.csdn.net/zhijiannnn/article/details/80908609
https://www.cnblogs.com/alice-cj/p/10424133.html
https://blog.csdn.net/hao1210119/article/details/128289544
标签:指南,xml,配置文件,src,springmvc,idea,web,webapp,servlet From: https://blog.51cto.com/u_15345945/7120585