当前位置: 代码网 > it编程>编程语言>Java > Tomcat加Maven配置的方法及常见错误

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

2026年02月28日 Java 我要评论
添加依赖pom.xml文件:到maven repository里面寻找java servlet apijar包(tomca版本问题(如果报错为500)tomcat 10+把包名从javax.*改成了j

添加依赖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配置内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com