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。

相关推荐
徐小夕12 分钟前
扒了JitWord的源码,我终于搞懂了企业级在线Word到底有多难写
前端·vue.js·github
lily52278312 分钟前
工具池与分发
前端·chrome
徐小夕@趣谈前端1 小时前
老旧Word格式全支持!JitWord协同AI文档4.1,让Word文档无缝迁移到Web端
前端·人工智能·word
螺丝钉tina1 小时前
[Playwright][01] 从 Puppeteer 到 Playwright:为什么选择 Playwright + TypeScript?
前端·javascript·typescript
Sailing1 小时前
🚀🚀【封闭结束6】Agent 会话服务与鉴权上下文
前端·人工智能·agent
IT_陈寒1 小时前
Java项目实战经验分享:一次由JPA懒加载引发的生产事故
前端·人工智能·后端
环境栈笔记1 小时前
浏览器多开同步怎么做?先分清设置、登录态和窗口操作
前端·人工智能·后端·自动化
是立不是利1 小时前
CSS 的层叠与优先级——为什么我的样式不生效
前端·css
开开心心就好1 小时前
电脑语音实时转文字工具,会议记录很省事
运维·服务器·前端·c#·ocr·perl·1024程序员节
aixingpan1 小时前
aixingpan.cn API开发文档:api_docs_onechart_marks_secondary2接口指南
前端·php