问题引入,java web项目从tomcat7以后就可以不用写web.xml文件了
1. 首先用idea新建一个项目并使用这个Web模板
2. 使用tomcat运行,观察其目录出现out文件夹,
编译完成后idea自动将web目录下的东西直接放到了webtest01_war_exploded目录下并且在其WEB-INF目录下创建了classes目录用来保存TestClass.class.
首先说classes目录,javac命令将项目中的TestClass.java编译成TestClass.class文件保存的位置。此目录即为类路径,这个目录很重要。使用spring时我们曾指定过"classpath:xx"其中的xx指得就是这里。俺么都什么样的文件会编译到这里呢
3. 我们先创建一个文件夹,并将其标记为Resources Root
再次运行后发现其中的aa.txt也会被放入classes下
4. 那么如果是test呢
5. 以上所有说的可以在这里配置
可以发现web文件夹就是一个普通的文件夹,那么为什么项目目录中会有一个蓝色的小圆点儿呢
这里facets就是今天我遇到的问题啦,如果我把项目中的web.xml删掉再运行也是没问题的
但是这里会出现一个小错误
点击右边的小减号给他删掉就好
但是我们的Servlet在哪儿配呢
- Servlet3.0规范中可以使用注解配置servlet
- 可以使用一个实现了javax.servlet.ServletContainerInitializer接口的类来管理应用的上下文等。
即以后就可以不用配置web.xml了
总结:
假设项目叫aa
项目打成aa.war包后放到tomact的webapp目录下,当tomcat启动时会自动将war包解压成一个叫aa的目录
在idea中,web目录(左下角带蓝色小圆点儿那个) 里面的东西会直接放到webapp/aa/目录下,而标记为Sources Root和Resources Root的目录的内容会合并起来放到webapp/aa/WEB-INF/目录下
浏览器访问时,**localhost:8080/aa/默认静态资源对应的目录为webapp/aa/下即在idea中的web目录(左下角带蓝色小圆点儿那个)**下。