Javaweb项目的源文件与字节码文件的目录结构
1、新建项目的源文件目录结构:
|----myProject
|----.settings(文件夹)
|----.classpath
|----.project
|----.mymetadata
|----src
|----WebRoot
|----其他静态文件:HTML、CSS、JavaScript、图片、jsp页面等
|----index.jsp:页面可以直接放在根目录下
|----META-INF
|----WEB-INF
|---- classes根目录:存放字节码文件
|----lib目录:存放第三方类库文件
|-- --web.xml:Web应用部署描述文件,必须目录
|----TLD文件:标签库描述文件
相应的解释:
1、1、.settings文件夹:里面存放各种插件的配置文件。
1、2、.classpath:定义了项目在编译时所使用的$CLASSPATH,就是配置整个工程运行环境
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/dom4j-1.6.1.jar">
<classpathentry kind="con" path="com.genuitec.eclipse.j2eedt.core.J2EE14_CONTAINER"/>
<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
</classpath>
从数据上我们容易看出,上面描述了工程的依赖文件:
1. 源文件的具体位置(kind="src")
2. 运行的系统环境,JDK运行时容器(kind="con")
3. 工程的library的具体位置信息(kind="lib")
4. 在每个lib的xml子节点中,有关于它的其它配置信息(例如我配置的那个"javadoc_location")
5. 项目字节码文件的输出目录(kind="output")
1、3、.mymetadata:描述项目在myeclipse的配置信息
<?xml version="1.0" encoding="UTF-8"?>
<project-module
type="WEB" 工程类型
name="myProject" 工程名称
id="myeclipse.1343985658390" 工程在工作空间内的唯一标识
context-root="/myProject" 请求的根路径
j2ee-spec="1.4" J2EE标准
archive="myProject.war"> 打包后war文件
<attributes>
<attribute name="webrootdir" value="WebRoot" /> Web根目录名称
</attributes>
</project-module>
1、4、.project:描述工程信息
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<!-- 工程名称 <name>-->
<name>myProject</name>
<!--工程注释描述-->
<comment></comment>
<projects>
</projects>
<!-- 编译器指定 <buildSpec>:具体加载方式信息-->
<buildSpec>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.WebClasspathBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.J2EEProjectValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<!-- 核心特性 <natures> :运行时需要的额外Eclipse插件-->
<natures>
<nature>com.genuitec.eclipse.j2eedt.core.webnature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
2、项目的字节码文件目录结构:
|----myProject
|----其他静态文件:HTML、CSS、JavaScript、图片、jsp页面等
|----index.jsp:页面可以直接放在根目录下
|----META-INF
|----WEB-INF
|---- classes根目录:存放字节码文件
|----lib目录:存放第三方类库文件
|-- --web.xml:Web应用部署描述文件,必须目录
|----TLD文件:标签库描述文件
3、总结:
通过上面两个目录结构的解释,当项目被编译之后,已经没有了src和WebRoot文件路径,所以当在配置文件中加载某个文件时:
<param-value>/WEB-INF/struts-config.xml</param-value>
<param-value>resource/struts/struts-config.xml</param-value>(resource在源文件src下面)