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 下创建 javaresources 目录,并标记为源码 / 资源根目录。
  4. 补全 web.xml :确保 WEB-INF 下存在 web.xml 配置文件。

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

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

  1. 新建项目 :选择 Maven取消勾选 Create from archetype,直接创建空 Maven 项目。
  2. 配置打包方式 :在 pom.xml 中添加 <packaging>war</packaging>
  3. 补全目录结构 :手动创建 src/main/javasrc/main/resourcessrc/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 Maventomcat7:run(正常启动)
    • 如需断点调试,选择 Debug Maventomcat7:run
    • 也可在 IDEA 底部 Maven 工具栏中,直接执行 tomcat7:run 命令

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

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

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

四、关键注意事项

  1. WEB-INF 目录 :名称必须严格为 WEB-INF,否则 Tomcat 无法识别项目
  2. 打包方式 :Web 项目必须配置 <packaging>war</packaging>,否则 Maven 不会打包成可部署的 war 包
  3. 目录标记java 目录需标记为 Sources Rootresources 标记为 Resources Root,否则代码 / 资源无法编译
  4. Tomcat 插件版本tomcat7-maven-plugin 兼容 Tomcat 7/8/9,高版本 Tomcat 可使用 tomcat8-maven-plugin
  5. 虚拟路径path 配置项目访问前缀,如 /hello 对应访问地址 http://localhost:8080/hello
相关推荐
MacroZheng22 分钟前
短短几天,暴涨2.8万Star!又一款编程神器开源!
java·人工智能·后端
SamDeepThinking35 分钟前
函数式编程:用BiFunction消除多类型分支的代码重复
java·后端·面试
Flittly18 小时前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了18 小时前
Java 生成二维码解决方案
java·后端
人活一口气1 天前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP1 天前
Vibe Coding -- 完整项目案例实操
java
荣码1 天前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
SimonKing1 天前
Google第三方授权登录
java·后端·程序员
明月光8181 天前
从一行 @Builder 说起:重新拾起 Java 的 Lombok、注解与 Builder 模式
java
考虑考虑1 天前
Mybatis实现批量插入
java·后端·mybatis