今天尝试创建了一个MAVEN的WAR项目。遇到一个问题web.xml is missing and <failOnMissingWebXml> is set to true。
发现是缺失了web.xml。也不知道是为什么没有自动生成。于是手动生成了一个。错误消失。
再来看web.xml的配置,借鉴了一个很好的博客https://www.cnblogs.com/hafiz/p/5715523.html把web.xml里面的常见配置都进行了详细的解释。常用的配置如<context-param>,<servlet>,<listener>,<filter>,获益匪浅。才发现我曾经学习过的servlet/jsp编程早就被我忘光光了。
在之前的版本,确实需要在web.xml里面配置像servlet, listener,filter这些东西。在servlet3.0以后,这些都可以通过注解来完成,web.xml的配置变得不是必须。也难怪没有为我自动生成这个描述文件了。
servlet的配置通过@WebServlet注解来代替。listener的配置通过@WebListener注解来代替。filter通过@WebFilter来代替。
可是我前段时间是从springMVC入手的。到这里开始觉得有点返璞归真了。Spring做的不就是做的这些事情吗。把这些东西都配置化了。一直没有完全理解的“Spring解决了什么问题,解决之前是怎么做的”又增添了一点点理解。
另外一个问题。在一个工作项目中发现了context.xml这个文件。 之前只在服务器的tomcat的servers里的应用目录下才见过这个文件。网上搜寻了一下。发现这个文件是为应用单独定义数据源的。恍然大悟,之前一直不理解,通过webapps默认方式启动tomcat应用的时候 ,怎么分别配置各个应用的数据源?在META-INF文件夹下 ,如果存在这个context.xml文件的话。则会自动使用配置。
特此记录。