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。

相关推荐
rannn_1112 小时前
【Git教程】概述、常用命令、Git-IDEA集成
java·git·后端·intellij-idea
霍理迪2 小时前
HTML行内块标签——img、表单、音视频标签
前端·html
小小前端_我自坚强2 小时前
边缘函数 (Edge Functions)详解
前端
幼儿园技术家2 小时前
Hydration Mismatch 原理详解:SSR 项目中最容易踩的坑
前端
June bug2 小时前
【Vue】EACCES: permission denied 错误
前端·javascript·vue.js
陈随易2 小时前
PostgreSQL v18发布,新增AIO uuidv7 OAuth等功能
前端·后端·程序员
一只小阿乐2 小时前
react 中的组件性能优化
前端·javascript·react.js·react组件性能优化
柯南二号2 小时前
【大前端】【iOS】iOS 真实项目可落地目录结构方案
前端·ios
肉清2 小时前
linux自用命令
linux·服务器·前端