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

确保 packaging 为 war,并添加 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。

相关推荐
福兮说2 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
郑州光合科技余经理2 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
小呆呆6663 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
Dovis(誓平步青云)3 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
码艺-Alimjan4 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
可乐鸡翅yeah_4 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
IT_陈寒5 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
广州华水科技5 小时前
大坝安全监测解决方案:单北斗GNSS形变监测系统应用与维护
前端
yivifu5 小时前
中文古籍电子书注释集成
前端·javascript·python·beautifulsoup·epub
默_笙6 小时前
🛴 从散件到整机:DeepAgents 与 Agent 身上预留的那些"插槽"(前置介绍)
前端·javascript