26.IDEA 专业版中创建简单的 Web 项目并打包部署到本地Tomcat 9

IDEA 中创建简单的 Web 项目并打包部署到本地Tomcat 9

一、创建最简单的 Web 项目

1. 使用 IDEA 创建 Java Web 项目

  1. File → New → Project → 选择 Maven → 勾选 Create from archetype → 选择 maven-archetype-webapp (最简单结构,仅含 index.jsp)。

    • GroupId : com.example
    • ArtifactId : simple-web
    • Version : Java 8 + Tomcat 9(兼容 javax.servlet)。
  2. 项目结构

    复制代码
    simple-web/
    ├── src/
    │   └── main/
    │       ├── resources/
    │       └── webapp/
    │           ├── WEB-INF/
    │           │   └── web.xml (可选)
    │           └── index.jsp (默认首页)
    └── pom.xml


2. 配置 pom.xml

确保 packagingwar,并添加 Servlet API 依赖(provided 作用域):

xml 复制代码
<packaging>war</packaging>

<dependencies>
    <!-- Tomcat 9 使用 javax.servlet -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <finalName>simple-web</finalName> <!-- 指定 WAR 文件名 -->
</build>

3. 添加一个简单的 Servlet(可选)

如果希望用 Java 代码处理请求(而非仅 JSP),创建一个 Servlet:

  1. src/main/java 下创建包 com.example.web

  2. 添加 HelloServlet.java

    java 复制代码
    package com.example.web;
    
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    @WebServlet("/hello")  // 访问路径:http://localhost:8080/simple-web/hello
    public class HelloServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
            resp.getWriter().write("Hello from Servlet (Tomcat 9)!");
        }
    }
    • 注意 :Tomcat 9 使用 javax.servlet(Jakarta EE 9 之前)。

二、打包项目

1. 执行打包

  • 在 IDEA 右侧 Maven 面板 → 选择 Lifecycle → package

  • 或终端运行:

    bash 复制代码
    mvn clean package
  • 生成 simple-web.war 文件在 target/ 目录下。


三、部署到远程服务器的 Tomcat 9

1. 手动部署(备用方案)

  1. 上传 WAR 文件
    • 通过 SCP/SFTP 将 target/simple-web.war 复制到远程服务器的 Tomcat 的 webapps/ 目录:

      bash 复制代码
      scp target/simple-web.war user@remote_ip:/path/to/tomcat/webapps/
    • Tomcat 会自动解压 WAR 文件(或重启 Tomcat 强制加载):

      bash 复制代码
      ./bin/shutdown.sh
      ./bin/startup.sh
  1. 访问应用
    • 浏览器访问:http://remote_ip:8080/simple-web/(首页 index.jsp)。
    • 如果配置了 Servlet,访问:http://remote_ip:8080/simple-web/hello

常见问题

  1. 403 访问拒绝
    • 检查 tomcat-users.xml 是否配置了 manager-script 角色。
    • 确保 context.xml 未限制远程访问。
  2. Servlet 404
    • 确认 @WebServlet 路径是否正确。
    • 检查 Tomcat 9 是否兼容 javax.servlet(而非 jakarta.servlet)。
  3. JDK 版本冲突
    • 确保远程服务器的 JDK 版本与本地开发环境一致。

通过以上步骤,你可以在 IDEA 中创建简单的 Web 项目并部署到远程 Tomcat 9。

相关推荐
小白640213 分钟前
2025年终总结-迷途漫漫,终有一归
前端·程序人生
烟花落o18 分钟前
贪吃蛇及相关知识点讲解
c语言·前端·游戏开发·贪吃蛇·编程学习
晚霞的不甘22 分钟前
Flutter for OpenHarmony专注与习惯的完美融合: 打造你的高效生活助手
前端·数据库·经验分享·flutter·前端框架·生活
2301_8153577025 分钟前
如何将SSM项目通过tomcat部署到Linux云服务器上?
linux·服务器·tomcat
_周游29 分钟前
Java8 API 文档搜索引擎_2.索引模块(程序)
java·搜索引擎·intellij-idea
kogorou0105-bit32 分钟前
前端设计模式:发布订阅与依赖倒置的解耦之道
前端·设计模式·面试·状态模式
止观止1 小时前
像三元表达式一样写类型?深入理解 TS 条件类型与 `infer` 推断
前端·typescript
雪芽蓝域zzs1 小时前
uniapp 省市区三级联动
前端·javascript·uni-app
Highcharts.js1 小时前
Next.js 集成 Highcharts 官网文档说明(2025 新版)
开发语言·前端·javascript·react.js·开发文档·next.js·highcharts
总爱写点小BUG1 小时前
探索 vu-icons:一款轻量级、跨平台的 Vue3 & UniApp SVG 图标库
前端·前端框架·组件库