文章目录
- Eclipse 的 Java Web 工程目录结构
- IDE 的目录结构截图
- 本地的工作空间(Workspace)中的目录结构
- 目录说明
- Eclipse 的 Java 工程目录结构
- IDE 的目录结构截图
- 本地的工作空间中的工程目录
- MyEclipse 的 Java Web 工程目录结构
- IDE 目录结构截图
- 本地的工作空间的工程目录
- IntelliJ IDEA 的 Java Web 工程目录结构
- IDE 工程目录结构截图
- 本地的工作空间的工程目录
Eclipse 的 Java Web 工程目录结构
IDE 的目录结构截图
本地的工作空间(Workspace)中的目录结构
目录说明
Apache Tomcat v7.0: 是指这个项目所依赖的服务器(Tomcat)的目录
JRE System Library: 指 Java SE 的常用库文件集合,也就是 jar 包,建立普通的 Java 项目均会使用到,如下图所示:
Web App Libraries: 是自己导入的项目依赖 jar 包,Web App Libraries 下的所有 jar 包都可以在 ProjectName\WebContent\WEB-INF\lib
中找到。如果你直接将一个 jar 包放在WEB-INF/lib目录下,再刷新一下,会自动编译到 Web App Library 中。
Referenced Libraries: 是编译环境下使用的 jar 包, 所谓编译环境下使用的 jar 包, 就是说你在 Eclipse 中进行源文件的编写的时候, 所需要引用到的类都从 Referenced Libraries 这个集合中的 jar 包中拿。这里导入和配置 jar 包,都是为了让 web 工程能够在 Eclipse 开发环境可以正常编译,不报错而已。
src: 存放源码文件(.java 文件)
build: 存放源码文件编译后的字节码文件,实际会存储在 build/classes 目录下(.class 文件)
WebContent: 存放 JSP、JS、CSS、XML、图片等文件,这些文件都需要部署到服务器上,是项目访问的默认根路径,也是工程的发布目录,发布时会把该目录发布到 tomcat 的 webapps 中
.settings: 该目录下的文件比较多和杂,各种后缀名的都可以见到,绝大多数是文本文件,以 properties 文件(多数以.prefs为后缀名) 和 xml 文件为主,点击此处查看更多
.classpath: 描述了一个 Eclipse 项目,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<classpath><!-- 含义:src/main/java属于源码,编译后放到target/classes目录下 --><classpathentry kind="src" output="target/classes" path="src/main/java"><attributes><attribute name="optional" value="true"/><attribute name="maven.pomderived" value="true"/></attributes></classpathentry><classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"><attributes><!-- 代表了配置是从POM.xml里来的,受maven管理,非maven项目可以去掉这个 --><attribute name="maven.pomderived" value="true"/></attributes></classpathentry><!-- 这里的including代表了目录下所有.java文件才会被处理,其他文件一概忽略,不会出现在target/test-classes目录下 --><classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/java"><attributes><attribute name="optional" value="true"/><attribute name="maven.pomderived" value="true"/></attributes></classpathentry><classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"><attributes><attribute name="maven.pomderived" value="true"/></attributes></classpathentry><!-- 这里代表使用标准的JavaSE-1.7 JDK,相比来说如果用default和直接写当前系统中安装的JDK是不推荐的 --><classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"><attributes><attribute name="maven.pomderived" value="true"/></attributes></classpathentry><!-- 代表了Maven中的dependencies也都放到classpath里 --><classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"><attributes><attribute name="maven.pomderived" value="true"/><!-- web工程中把依赖的jar都放到输出的webapp里/WEB-INF/lib下面 --><attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/></attributes></classpathentry><!-- --><classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache-Tomcat v7.0"><attributes><attribute name="owner.project.facets" value="jst.web"/></attributes></classpathentry><!-- 统一的输出为target/classes --><classpathentry kind="output" path="target/classes"/>
</classpath>
.project: 描述了一个 Eclipse 项目,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription><!-- name里的内容代表项目名字,对应了Eclipse项目的名称,不是Maven的finalName --><name>demo</name><!-- 项目的注释 --><comment></comment><!-- 引用的项目的名字 --><projects></projects><!-- 有序的列表,定义了一系列的构建命令(buildCommand) --><buildSpec><buildCommand><!-- 项目构建命令的名字 --><name>org.eclipse.wst.jsdt.core.javascriptValidator</name><!-- 构建命令初始化时需要传递的参数(一般看到的都是空的) --><arguments></arguments></buildCommand><buildCommand><name>org.eclipse.jdt.core.javabuilder</name><arguments></arguments></buildCommand><buildCommand><name>org.eclipse.wst.common.project.facet.core.builder</name><arguments></arguments></buildCommand><buildCommand><name>org.eclipse.m2e.core.maven2Builder</name><arguments></arguments></buildCommand></buildSpec><!-- 项目中用到的一些特性的列表 --><natures><!-- 每一个特性的的名字 --><nature>org.eclipse.jem.workbench.JavaEMFNature</nature><nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature><nature>org.eclipse.jdt.core.javanature</nature><nature>org.eclipse.m2e.core.maven2Nature</nature><nature>org.eclipse.wst.common.project.facet.core.nature</nature><nature>org.eclipse.wst.jsdt.core.jsNature</nature></natures>
</projectDescription>
META-INF: 存放工程自身相关的一些信息,元文件信息,通常由开发工具和环境自动生成,尽量不要自己手动放置文件到目录
MANIFEST.MF: 配置清单文件
WEB-INF: 此目录是一个专用区域, 容器不能把此目录中的内容直接提供给用户(即这个目录下的文件不能被客户端直接访问,只有服务端才能访问),这个目录下的文件只供容器使用,里面包含用户无法直接下载的资源。Web 容器要求在应用程序中必须有 WEB-INF 目录。WEB-INF 中包含着发布描述符(web.xml 文件),一个 classes 目录和一个 lib 目录,以及其它内容
如果客户端想访问 WEB-INF 中的文件,必须通过 web.xml 文件,对要访问的文件进行相应的映射才能进行访问。
放在 Web 根目录下的资源(html、图片等),客户端可以通过 URL 地址直接访问。
web.xml: web 工程的配置文件,例如可以配置:welcome页面,filter,listener,servlet,servlet-mapping,启动加载级别等。每一个 xml 文件都有定义格式规范的 schema 文件,web.xml 的模式文件是由Sun 公司定义的,每个 web.xml 文件的根元素为 中,必须标明这个 web.xml 使用的是哪个模式文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5">
</web-app>
WEB-INF/classes: 用于存放字节码文件(.class 文件)。Eclipse 中 classes 目录默认是在 build 目录下,部署到服务器时,则会把 classes 放在 WEB-INF 目录下
WEB-INF/lib: 该目录中的 jar 包是运行时环境下使用的 jar 包, 所谓运行时环境下使用的 jar 包,就是说你在运行你的项目的时候所需要使用的 jar 包的集合。
common/js/css/images: 这些都是自定义的目录,用来分类管理一些共用的或者程序引用到的相关文件
Eclipse 的 Java 工程目录结构
IDE 的目录结构截图
本地的工作空间中的工程目录
bin: 目录是工程输出路径,存放了编译生成的 .class 文件。用 Eclipse 进行打包时根目录就是bin
src: 目录为源码文件夹,存放的是 .Java 文件
MyEclipse 的 Java Web 工程目录结构
IDE 目录结构截图
本地的工作空间的工程目录
IntelliJ IDEA 的 Java Web 工程目录结构
这里展示的是 IntelliJ IDEA for Mac 版本的工程目录结构
IDE 工程目录结构截图
略
本地的工作空间的工程目录
略