javaweb项目目录结构

本文详细介绍了JavaEE应用的标准目录结构及其用途,包括源代码、资源文件、测试代码等的组织方式,并对WAR包内的目录进行了特别约定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序目录结构应遵从maven默认约定(即使采用ANT构建),以统一规范,简化构建配置。一个典型的JavaEE应用(对应公司某产品、或某个项目的程序),目录结构如下:
这里写图片描述

大型项目应划分多个工程(project,模块),每个工程的目录结构也同样遵从相同约定。

各目录的内容/用途如下:

目录用途
src/main/javaApplication /Library 的java源代码(再分package)
src/main/flex 增加:flex源码,包含mxml定义、assets和as脚本
src/main/resourcesApplication/Library 的资源文件,如多字符集boundle,位图,配置文件等(单独建立conf等子目录)
src/main/resources/conf增加:准备封到JAR包中的配置文件(默认包下conf/目录)
src/main/filters【暂不用】Resource filter files
src/main/assembly【暂不用】Assembly descriptors
src/main/config【暂不用】maven配置文件
src/main/webappsWeb 应用的网页,WEB-INF目录等所在,详见本表下方说明
src/test/java单元测试的源代码
src/test/resources测试使用的资源文件,如集成测试脚本等
src/test/resources/conf增加:测试用例需要的配置文件
src/test/filters【暂不用】Test resource filter files
src/site【暂不用】Site
pom.xmlMaven工程的配置文件,以此控制maven构建行为
LICENSE.txt产品/本工程的版权信息文件
README.txt产品/本工程的说明文件

为规范war包结构,对src\main\webapp目录做如下约定:

目录用途
css存放.css格式文件(可再分目录)
skins存放皮肤文件(按主题划分的framework的位图)
images存放图片,按产品、功能模块划分子目录
jsJavaScript文件(对象、函数库)
include存放被包含的JS文件片段【注:JSP文件互相不要包含,通过模板/组件/标签库/BEAN实现重用】
resources存放JSF组件、相关资源等
templates模板文件存放地,按类别划分子目录
pages网页目录(静态和动态网页,除index.jsp),按产品、功能模块划分子目录
webapp下其他目录解释为模块名,认为其中全部为网页,可再分子目录
META-INF存放清单文件、services等配置信息
WEB-INF网站配置文件目录,存放WEB.XML等配置信息
WEB-INF/classes未打包的项目编译代码,禁止手工修改。
WEB-INF/conf存放struts,spring,hibernate,JSF等的配置文件
WEB-INF/lib存放第三方JAR包,使用MAVEN构建时此目录禁止手动放入文件!
WEB-INF/pages高安全性的网页目录,如登录信息维护等
WEB-INF/tldJSP标签库定义文件存放目录
### JavaWeb 项目结构组成 #### 文件夹及其功能说明 JavaWeb项目的文件结构遵循特定的标准,以确保应用程序能够被正确编译、打包并部署至Tomcat等Servlet容器中。典型的Maven构建工具创建的Spring MVC Web应用会具有如下目录布局: - **src/main/java**:此路径下放置所有的源代码文件,包括控制器(Controller),服务层(Service Layer), 数据访问对象(DAOs)以及实体类(Entities)[^1]。 - **src/main/resources**:用于存储配置文件和其他资源文件,比如数据库连接池设置、日志记录器配置、国际化消息属性文件等[^2]。 - **src/main/webapp/WEB-INF/**:这是非常重要的部分,在这里可以找到`web.xml`(如果存在的话),它是整个Web应用程序的核心描述符;还有视图解析器(View Resolver)所指向的位置通常也会在此处定义模板页面或其他静态资源[^3]。 - **src/test/java** 和 **src/test/resources**: 测试相关的java代码和测试所需的资源配置位于这两个位置,它们不会被打包进入最终的应用程序WAR或者JAR文件里[^1]。 #### 关键组件解释 - `pom.xml`: Maven项目的项目对象模型(POM)文件,包含了关于项目的信息如依赖关系管理、插件配置等内容。 - `web.xml`: 虽然现代版本的Spring框架允许通过Java Config来替代它,但在某些情况下仍然需要该XML文件作为Servlet容器初始化参数的一部分。 - `.idea/` 或者其他IDE特有的元数据文件夹:当使用像IntelliJ IDEA这样的集成开发环境时,会在根目录下自动生成此类隐藏文件夹用来保存工作区设定等信息。 ```xml <!-- pom.xml 示例 --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- ...省略... --> </project> ``` ```properties # src/main/resources/application.properties 示例 server.port=8080 spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值