javaweb--03

一、Maven Web 项目结构详解

1. 开发环境结构(src 目录)

plaintext

复制代码
hello (项目名)
├── src
│   ├── main
│   │   ├── java          # 存放 Java 源代码
│   │   ├── resources     # 存放配置等资源文件
│   │   └── webapp        # Web 项目特有目录
│   │       ├── html      # 自定义 HTML 等静态资源目录(可改名)
│   │       └── WEB-INF   # 核心目录,名称必须为 WEB-INF
│   │           └── web.xml  # Web 项目核心配置文件
│   └── test              # 测试代码目录
└── pom.xml               # Maven 核心配置文件

2. 部署环境结构(package 打包后)

plaintext

复制代码
hello (项目访问虚拟目录)
├── html                  # 静态资源目录(与开发目录对应)
└── WEB-INF               # 核心目录,名称必须为 WEB-INF
    ├── classes           # 存放编译后的 Java 字节码 + resources 资源文件
    ├── lib               # 存放 pom.xml 中依赖的所有 jar 包
    └── web.xml           # Web 项目配置文件

3. pom.xml 核心配置:打包方式

Web 项目必须在 pom.xml 中指定打包方式为 war,否则无法部署:

xml

复制代码
<!-- 打包方式:jar 为普通 Java 项目(默认),war 为 Web 项目 -->
<packaging>war</packaging>

二、IDEA 创建 Maven Web 项目的两种方式

方式一:使用骨架(archetype)创建

适合快速生成标准结构,步骤如下:

  1. 新建项目 :选择 Maven,勾选 Create from archetype,选择 org.apache.maven.archetypes:maven-archetype-webapp 骨架。
  2. 清理冗余配置 :删除 pom.xml 中多余的坐标、插件配置。
  3. 补全目录结构 :手动在 src/main 下创建 java、resources 目录,并标记为源码 / 资源根目录。
  4. 补全 web.xml :确保 WEB-INF 下存在 web.xml 配置文件。

方式二:不使用骨架创建(推荐,更灵活)

适合自定义项目结构,步骤如下:

  1. 新建项目 :选择 Maven,取消勾选 Create from archetype,直接创建空 Maven 项目。
  2. 配置打包方式 :在 pom.xml 中添加 <packaging>war</packaging>。
  3. 补全目录结构 :手动创建 src/main/java、src/main/resources、src/main/webapp/WEB-INF 目录。
  4. 配置 Web Facets :
    • 打开 File → Project Structure → Facets,添加 Web facet。
    • 配置 Deployment Descriptors,指定 web.xml 的正确路径(src/main/webapp/WEB-INF/web.xml),选择 3.0+ 版本。
    • 配置 Web Resource Directories,指定 webapp 为资源根目录。
  5. 创建 web.xml :在 WEB-INF 下生成标准的 web.xml 配置文件。

三、Tomcat 部署项目的两种方式

方式一:使用 Tomcat Maven 插件(推荐,开发调试用)

无需安装本地 Tomcat,直接通过 Maven 启动,步骤如下:

  1. 在 pom.xml 中添加插件

    xml

    复制代码
    <build>
        <plugins>
            <!-- Tomcat7 Maven 插件 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <!-- 可选:配置端口号、访问路径 -->
                <configuration>
                    <port>8080</port>          <!-- 访问端口,默认 8080 -->
                    <path>/hello</path>        <!-- 项目虚拟路径,默认 / 项目名 -->
                </configuration>
            </plugin>
        </plugins>
    </build>
  2. 启动项目

    • 选中项目,右键 → Run Maven → tomcat7:run(正常启动)
    • 如需断点调试,选择 Debug Maven → tomcat7:run
    • 也可在 IDEA 底部 Maven 工具栏中,直接执行 tomcat7:run 命令

方式二:集成本地 Tomcat(生产部署用)

适合部署到本地安装的 Tomcat 服务器,步骤如下:

  1. 打开配置 :点击 IDEA 右上角 Server → Edit Configurations...
  2. 添加 Tomcat 配置 :点击 + → Tomcat Server → Local
  3. 配置 Tomcat home :点击 Configure...,选择本地 Tomcat 的安装目录,IDEA 会自动识别版本
  4. 部署项目 :切换到 Deployment 标签页,点击 + → Artifact...,选择项目对应的 war 包
  5. 保存并启动 :点击 Apply → OK,点击右上角绿色启动按钮,即可启动 Tomcat 并部署项目

四、关键注意事项

  1. WEB-INF 目录 :名称必须严格为 WEB-INF,否则 Tomcat 无法识别项目
  2. 打包方式 :Web 项目必须配置 <packaging>war</packaging>,否则 Maven 不会打包成可部署的 war 包
  3. 目录标记 :java 目录需标记为 Sources Root,resources 标记为 Resources Root,否则代码 / 资源无法编译
  4. Tomcat 插件版本 :tomcat7-maven-plugin 兼容 Tomcat 7/8/9,高版本 Tomcat 可使用 tomcat8-maven-plugin
  5. 虚拟路径 :path 配置项目访问前缀,如 /hello 对应访问地址 http://localhost:8080/hello
相关推荐
今年下半年2 分钟前
【网站连通性检测】java项目telnet、curl命令的使用
java·curl·telnet
摇滚侠2 分钟前
《Spring Boot 3:高级与架构设计》第 2 章 IOC 容器的高级机制 编程式驱动 IOC 阅读笔记 7
java·spring boot·笔记
IT枫斗者枫哥6 分钟前
UPDATE影响0行,接口却返回成功:把版本冲突接回业务
java·后端
霸道流氓气质14 分钟前
AI应用成本优化完全指南:Token压缩、语义缓存与模型路由的Java生产级实战
java·人工智能·缓存
mmm.c22 分钟前
Redis 两级缓存 + Pub/Sub 广播:一次为抗高并发做的缓存改造
java
yexianglunbai22 分钟前
中间件(Middleware)详解:概念、作用与实战
java·开发语言·中间件
叶总没有会24 分钟前
OpenFeign
java·开发语言·springcloud·openfeign
小七在进步25 分钟前
类和对象(四)
java·javascript·ajax
白帽攻防录28 分钟前
SRC 挖洞:Apache Tomcat 加密拦截器绕过深度复盘,CVE-2026-34486 fail-open 一行代码怎么打穿集群通信
java·网络安全·tomcat·apache
后端LV32 分钟前
三级缓存的两个失效盲区,我用 binlog 和消费组广播补上了
java·架构