Tomcat加Maven配置的方法及常见错误

 更新时间:2026年02月26日 09:25:48   作者:范什么特西  
文章介绍了在Maven项目中配置Tomcat和Java Servlet API的相关操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

添加依赖pom.xml文件:到Maven Repository里面寻找Java Servlet API jar包

(Tomca版本问题(如果报错为500

)

  • Tomcat 10+ 把包名从 javax.* 改成了 jakarta.*
  • 如果代码还在用 javax.servlet,但Tomcat为10+就找不到这个包
  • 错误信息里的 NoClassDefFoundError 就是因为包名不匹配

)

更新web.xml配置: (可以上tomcat里面找到对应的xml文件,复制上去)

注意servlet-mapping里面的url-pattern必须斜杠开头

  • <servlet> 只是告诉容器:"我创建了一个名叫 hellow 的 Servlet"
  • 但没有 <servlet-mapping> 告诉容器:"这个 hellow Servlet 应该对应哪个 URL 访问路径"

添加Tomcat时候,分为Tomcat和TomcatEE

区别:

  • 用 Tomcat,你需要什么功能,就自己“买”什么“家具”(依赖库)放进去。
  • 用 TomEE,开发商(Apache)已经把常用的“家具”(企业级功能)都给你配好了,你直接“拎包入住”就行。

如果报错为405

错误信息说:"此URL不支持Http方法GET",意思是你的 Servlet 没有正确处理 GET 请求。

问题就在 super.doGet(req, resp) 这行!
调用父类的 doGet() 方法,而父类(HttpServlet)的默认实现就是返回 405 错误

Maven配置

  • clean:会删除 target 目录,清理之前的所有编译文件
  • package:会重新编译、测试、打包你的项目
  • 成功后会在 target 目录下生成:Maven_01_Test.war 文件

分析结构:

web.xml文件:

  • .xml:是一种标记语言,用标签 <xxx> 来写配置
<servlet>
    <servlet-name>hellow</servlet-name>           <!-- 给厨师起个小名叫"hellow" -->
    <servlet-class>com.counter.servlet</servlet-class>  <!-- 告诉服务员,hellow 厨师是张三(具体哪个类) -->
</servlet>
<servlet-mapping>
    <servlet-name>hellow</servlet-name>           <!-- 当客人点 hellow 套餐时 -->
    <url-pattern>/hellow</url-pattern>            <!-- 客人喊"/hellow" 这个菜名 -->
</servlet-mapping>
  • 当用户在浏览器输入 http://localhost:8080/项目名/hellow
  • Tomcat 就会去找 com.counter.servlet 这个类
  • 然后执行里面的 doGet() 或 doPost() 方法

总结:web.xml 就是你的"项目说明书",告诉 Tomcat 服务器你的网站该怎么运行。

pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
         http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <!-- 1. POM版本:固定用4.0.0 -->
    <modelVersion>4.0.0</modelVersion>
    <!-- 2. 项目坐标(项目的身份证) -->
    <groupId>com.counter</groupId>           <!-- 公司名(反写的域名) -->
    <artifactId>Maven_01_Test</artifactId>   <!-- 项目名 -->
    <version>1.0-SNAPSHOT</version>          <!-- 版本号 -->
    <packaging>war</packaging>                <!-- 打包方式:war(网页应用) -->
    <!-- 3. 项目属性(统一管理版本号) -->
    <properties>
        <maven.compiler.source>21</maven.compiler.source>   <!-- Java版本 -->
        <maven.compiler.target>21</maven.compiler.target>   <!-- Java版本 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <!-- 4. 依赖清单(要买什么材料) -->
    <dependencies>
        <!-- Servlet API(做网站必备) -->
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>6.0.0</version>
            <scope>provided</scope>  <!-- Tomcat已提供,打包时不用包含 -->
        </dependency>
        <!-- 如果需要JSP,加这个 -->
        <dependency>
            <groupId>jakarta.servlet.jsp</groupId>
            <artifactId>jakarta.servlet.jsp-api</artifactId>
            <version>3.1.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <!-- 5. 构建配置(怎么装修房子) -->
    <build>
        <finalName>Maven_01_Test</finalName>  <!-- 打包后的WAR文件名 -->
        <plugins>
            <!-- 编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.11.0</version>
            </plugin>
        </plugins>
    </build>
</project>

第一到第五行

<groupId>com.counter</groupId>      <!-- 你的包名:com.counter -->
<artifactId>Maven_01_Test</artifactId>  <!-- 项目名:Maven_01_Test -->
<version>1.0-SNAPSHOT</version>         <!-- 版本:1.0-SNAPSHOT(开发版) -->
<packaging>war</packaging>               <!-- 类型:war(网页应用) -->

2️⃣依赖(第6-8行)

<dependencies>
    <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>6.0.0</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

3️⃣properties(第3行)

<properties>
    <maven.compiler.source>21</maven.compiler.source>  <!-- 用Java 21编译 -->
</properties>

统一管理各种版本号,以后改版本只改这里

Maven 生命周期

clean   → 打扫卫生(删除target文件夹)
compile → 编译代码(把.java变成.class)
test    → 运行测试(如果有测试代码)
package → 打包(生成war/jar文件)
install → 装到本地仓库(给别的项目用)

常见问题

Q:为什么要用 Maven?
A:不用手动找jar包、不用手动添加依赖、自动下载、统一版本。

Q:provided 是什么意思?
A:"自带材料"——Tomcat 服务器里已经有 Servlet 的jar包了,我打包时不用再塞进去,省空间。

Q:我的项目报错说找不到 Servlet 类?
A:检查 pom.xml 里有没有加 Servlet 依赖!

到此这篇关于Tomcat加Maven配置的文章就介绍到这了,更多相关tomcat maven配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Tomcat生命周期详解

    Tomcat生命周期详解

    这篇文章主要为大家介绍了Tomcat生命周期详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Tomcat 部署程序方法步骤

    Tomcat 部署程序方法步骤

    本文主要介绍了Tomcat部署程序的方法步骤,具有一定的参考价值,下面跟着小编一起来看下吧
    2016-12-12
  • Tomcat多实例与负载均衡示例详解

    Tomcat多实例与负载均衡示例详解

    这篇文章主要介绍了Tomcat多实例与负载均衡,在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境,具体内容详情跟随小编一起看看吧
    2022-04-04
  • Tomcat中catalina.out 和 catalina.log的区别和用途详解

    Tomcat中catalina.out 和 catalina.log的区别和用途详解

    本文主要介绍了Tomcat中catalina.out 和 catalina.log的区别和用途详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 解决Eclipse最新版无法使用Tomcat插件问题

    解决Eclipse最新版无法使用Tomcat插件问题

    最近将下载的tomcat插件导入eclipse安装目录后无法显示“猫咪这篇文章主要介绍了解决Eclipse最新版无法使用Tomcat插件问题,需要的朋友可以参考下
    2018-05-05
  • Tomcat将配置文件放在外部的解决方法

    Tomcat将配置文件放在外部的解决方法

    这篇文章主要给大家介绍了关于Tomcat将配置文件放在外部的相关资料,对平时工作来说还是挺实用的,需要的朋友们下面随着小编一起来看看吧
    2021-05-05
  • Tomcat安装与配置Native APR模式的教程

    Tomcat安装与配置Native APR模式的教程

    APR是Apache HTTP服务器的支持库,提供了一组映射到下层操作系统的API。通过 tomcat-native 库,使tomcat运行时通过APR更多的调用本地API,达到提升性能的目的。下面这篇文章详细介绍了Tomcat安装与配置Native APR模式的教程,需要的朋友可以参考借鉴,一起来看看吧。
    2017-02-02
  • Linux 中Tomcat远程调试代码的实现方法

    Linux 中Tomcat远程调试代码的实现方法

    这篇文章主要介绍了Tomcat 远程调试代码的实现方法的相关资料,这里提供实例帮助大家实现这样的功能,需要的朋友可以参考下
    2017-08-08
  • 在Linux系统中查看Tomcat日志的具体方法

    在Linux系统中查看Tomcat日志的具体方法

    在Linux中查看Tomcat日志需定位logs目录下的catalina.out、localhost.log等文件,使用tail -f实时跟踪、grep过滤分析,注意权限与文件大小,本文通过代码给大家介绍的非常详细,需要的朋友可以参考下
    2025-07-07
  • Tomcat 启动时 SecureRandom 非常慢解决办法

    Tomcat 启动时 SecureRandom 非常慢解决办法

    这篇文章主要介绍了Tomcat 启动时 SecureRandom 非常慢解决办法的相关资料,需要的朋友可以参考下
    2017-06-06

最新评论