我们在开发Java Web项目的过程中,除了要考虑项目的具体代码实现还有考虑整个Java Web项目的目录结构。一个好的Java Web项目目录结构能够有利于我们梳理项目各个部分之间的关系,使整个项目的结构一目了然。尽管没有标准规定Java Web项目目录结构如何,但还是有参考的规范存在。
以下是Maven推荐的Java Web项目目录:
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── mygroup
│ │ ├── controller
│ │ │ ├── HomeController.java
│ │ │ └── PersonController.java
│ │ ├── dao
│ │ │ └── PersonDao.java
│ │ └── model
│ │ └── Person.java
│ ├── resources
│ │ ├── db.properties
│ │ ├── log4j.xml
│ │ └── META-INF
│ │ └── persistence.xml
│ └── webapp
│ ├── index.html
│ ├── META-INF
│ │ ├── context.xml
│ │ └── MANIFEST.MF
│ ├── resources
│ │ └── css
│ │ └── screen.css
│ └── WEB-INF
│ ├── spring
│ │ ├── app
│ │ │ ├── controllers.xml
│ │ │ └── servlet-context.xml
│ │ ├── db.xml
│ │ └── root-context.xml
│ ├── views
│ │ ├── edit.jsp
│ │ ├── home.jsp
│ │ └── list.jsp
│ └── web.xml
└── test
├── java
│ └── mygroup
│ ├── controller
│ │ ├── DataInitializer.java
│ │ ├── HomeControllerTest.java
│ │ └── PersonControllerTest.java
│ └── dao
│ └── PersonDaoTest.java
└── resources
├── db.properties
├── log4j.xml
├── test-context.xml
└── test-db.xml
我们根据上面的Java Web项目目录结构,对一些文件目录来进行必要的分析。
Java web工程下的webapp或WebContent就是工程的发布文件夹,发布时会把该文件夹发布到tomcat的webapps里。
开发时classes文件存放路径:
buildpath:在eclipse中项目的右键Java build path-source中指定工程中class文件的编译路径,一般为:test/build/classes。(test是工程名)
发布时classes文件存放路径:
发布到tomcat时(在eclipse里启动tomcat),src文件夹里的java文件经过编译后,会把.class文件放在WEB-INF文件夹里的classes文件夹中。
有一些配置文件需要放到WEB-INF的classes文件夹下,所以,通常的做法是手动在工程的WEB-INF文件夹下建立classes文件夹。如果不在工程的WEB-INF下手动建立classes,发布到tomcat时tomcat里的WEB-INF中也会有classes文件夹。
【Web App Libraries】 一般是指向web工程的 WEB-INF/lib下的包(可以将包copy到此目录下 然后刷新工程 加入的包一般可以自动找到 如果找不到 右键|Properties |Java Build Path|Libraries |Add JARs 可以加入)
build path中add jar可以引用工程文件夹以外的jar,如果引用了工程以外的jar,在.classpath文件中会添加(如java的jar包jre和tomcat的jar包):
<classpathentry kind="lib" path="D:/workspace/ojdbc14.jar"/>
web-info/lib中的jar不会往.classpath文件中会添加, 其余两者没有区别,编译的时候先找classpath中的jar如果没有则找web-info/lib中的jar。
web工程参照了很多文件,因此发布的时候要打成war包,使其变成单独的个体,放到web容器里。
开发环境中eclise会将工程打包放到tomcat下,进行关联。
总的来说,Java Web项目目录结构和其他类的项目目录结构大同小异,但都会有逻辑性可言。一个良好的Java Web项目目录结构能够提高项目开发的效率,减少代码的错误率由此可见,掌握良好的Java Web项目目录结构对一个从事前端开发的开发人员是非常必要的。于此同时,我们也可言观看本站的Java Web教程,学习更多Java Web开发的规范。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习