Java面试系列-webapp文件夹和WebContent文件夹的区别?-kingsoft是什么文件夹
程序员面试系列
程序员面试系列:Spring MVC能响应HTTP请求的原因?
面试题:Java Web Project里我们会遇到下面两种文件夹:webapp和WebContent。
这两个文件夹下都有个字文件夹WEB-INF,里面都有web.xml。为什么有这两种不同的文件夹?作用是什么?
答案:如果在Eclipse用File->New->Dynamic Web Project创建的项目,会得到WebContent文件夹。如果是一个Maven项目,则会得到src/main/webapp文件夹。
Maven项目里不同的文件夹名称的规范:http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
我们一般都按照这些统一命名规范来创建文件夹。当然Maven规范也说了,如果您看着这些规范不顺眼,可以通过修改project descriptor来调整。
而传统Java Web项目的WebContent文件夹呢?这个WebContent里面存放的是我们Web应用的资源比如JavaScript脚本文件和HTML。当应用部署到Web服务器比如Tomcat时,这个WebContent就不再需要了。
看个例子。对Web项目点右键,在属性里选择Deployment Assembly,这个可以定义Web项目部署到服务器之后的文件夹映射关系。
下图我的例子,意思是将Eclipse项目的WebContent下面的所有资源,直接部署到服务器应用的根目录下。
到我本地安装的Tomcat服务器的文件夹下面去看,发现应用的根目录下面果然没有WebContent了,而是直接包含了所有的JavaScript和HTML资源文件。