Tomcat加Maven配置的方法及常見錯(cuò)誤
添加依賴pom.xml文件:到Maven Repository里面尋找Java Servlet API jar包
(Tomca版本問題(如果報(bào)錯(cuò)為500

)
- Tomcat 10+ 把包名從
javax.*改成了jakarta.* - 如果代碼還在用
javax.servlet,但Tomcat為10+就找不到這個(gè)包 - 錯(cuò)誤信息里的
NoClassDefFoundError就是因?yàn)榘黄ヅ?/li>
)

更新web.xml配置: (可以上tomcat里面找到對應(yīng)的xml文件,復(fù)制上去)

注意servlet-mapping里面的url-pattern必須斜杠開頭
<servlet>只是告訴容器:"我創(chuàng)建了一個(gè)名叫 hellow 的 Servlet"- 但沒有
<servlet-mapping>告訴容器:"這個(gè) hellow Servlet 應(yīng)該對應(yīng)哪個(gè) URL 訪問路徑"
添加Tomcat時(shí)候,分為Tomcat和TomcatEE
區(qū)別:
- 用 Tomcat,你需要什么功能,就自己“買”什么“家具”(依賴庫)放進(jìn)去。
- 用 TomEE,開發(fā)商(Apache)已經(jīng)把常用的“家具”(企業(yè)級功能)都給你配好了,你直接“拎包入住”就行。
如果報(bào)錯(cuò)為405

錯(cuò)誤信息說:"此URL不支持Http方法GET",意思是你的 Servlet 沒有正確處理 GET 請求。
問題就在 super.doGet(req, resp) 這行!
調(diào)用父類的 doGet() 方法,而父類(HttpServlet)的默認(rèn)實(shí)現(xiàn)就是返回 405 錯(cuò)誤。
Maven配置
- clean:會(huì)刪除
target目錄,清理之前的所有編譯文件 - package:會(huì)重新編譯、測試、打包你的項(xiàng)目
- 成功后會(huì)在
target目錄下生成:Maven_01_Test.war文件
分析結(jié)構(gòu):
web.xml文件:
.xml:是一種標(biāo)記語言,用標(biāo)簽<xxx>來寫配置
<servlet>
<servlet-name>hellow</servlet-name> <!-- 給廚師起個(gè)小名叫"hellow" -->
<servlet-class>com.counter.servlet</servlet-class> <!-- 告訴服務(wù)員,hellow 廚師是張三(具體哪個(gè)類) -->
</servlet>
<servlet-mapping>
<servlet-name>hellow</servlet-name> <!-- 當(dāng)客人點(diǎn) hellow 套餐時(shí) -->
<url-pattern>/hellow</url-pattern> <!-- 客人喊"/hellow" 這個(gè)菜名 -->
</servlet-mapping>- 當(dāng)用戶在瀏覽器輸入
http://localhost:8080/項(xiàng)目名/hellow - Tomcat 就會(huì)去找
com.counter.servlet這個(gè)類 - 然后執(zhí)行里面的
doGet()或doPost()方法
總結(jié):web.xml 就是你的"項(xiàng)目說明書",告訴 Tomcat 服務(wù)器你的網(wǎng)站該怎么運(yùn)行。
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. 項(xiàng)目坐標(biāo)(項(xiàng)目的身份證) -->
<groupId>com.counter</groupId> <!-- 公司名(反寫的域名) -->
<artifactId>Maven_01_Test</artifactId> <!-- 項(xiàng)目名 -->
<version>1.0-SNAPSHOT</version> <!-- 版本號 -->
<packaging>war</packaging> <!-- 打包方式:war(網(wǎng)頁應(yīng)用) -->
<!-- 3. 項(xiàng)目屬性(統(tǒng)一管理版本號) -->
<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(做網(wǎng)站必備) -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope> <!-- Tomcat已提供,打包時(shí)不用包含 -->
</dependency>
<!-- 如果需要JSP,加這個(gè) -->
<dependency>
<groupId>jakarta.servlet.jsp</groupId>
<artifactId>jakarta.servlet.jsp-api</artifactId>
<version>3.1.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<!-- 5. 構(gòu)建配置(怎么裝修房子) -->
<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> <!-- 項(xiàng)目名:Maven_01_Test --> <version>1.0-SNAPSHOT</version> <!-- 版本:1.0-SNAPSHOT(開發(fā)版) --> <packaging>war</packaging> <!-- 類型:war(網(wǎng)頁應(yīng)用) -->
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>統(tǒng)一管理各種版本號,以后改版本只改這里
Maven 生命周期
clean → 打掃衛(wèi)生(刪除target文件夾) compile → 編譯代碼(把.java變成.class) test → 運(yùn)行測試(如果有測試代碼) package → 打包(生成war/jar文件) install → 裝到本地倉庫(給別的項(xiàng)目用)
常見問題
Q:為什么要用 Maven?
A:不用手動(dòng)找jar包、不用手動(dòng)添加依賴、自動(dòng)下載、統(tǒng)一版本。
Q:provided 是什么意思?
A:"自帶材料"——Tomcat 服務(wù)器里已經(jīng)有 Servlet 的jar包了,我打包時(shí)不用再塞進(jìn)去,省空間。
Q:我的項(xiàng)目報(bào)錯(cuò)說找不到 Servlet 類?
A:檢查 pom.xml 里有沒有加 Servlet 依賴!
到此這篇關(guān)于Tomcat加Maven配置的文章就介紹到這了,更多相關(guān)tomcat maven配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vscode開發(fā)maven的javaweb項(xiàng)目并部署到tomcat及配置指南
- IDEA2023 Maven3.9.1+Tomcat10.1.8配置并搭建Servlet5.0的框架實(shí)現(xiàn)
- Maven項(xiàng)目配置Tomcat的兩種方式
- idea2020.3配置maven環(huán)境并配置Tomcat的詳細(xì)教程
- Java(JDK/Tomcat/Maven)運(yùn)行環(huán)境配置及工具(idea/eclipse)安裝詳細(xì)教程
- IDEA配置java開發(fā)環(huán)境(maven、gradle、tomcat)
- maven項(xiàng)目遠(yuǎn)程部署&&使用tomcat配置數(shù)據(jù)庫連接的方法
- shell腳本自動(dòng)化創(chuàng)建虛擬機(jī)的基本配置之tomcat--mysql--jdk--maven
- SSM項(xiàng)目頻繁打成war包部署,使用tomcat和maven實(shí)現(xiàn)熱部署配置
相關(guān)文章
解決Tomcat 中catalina.out持續(xù)累加問題
這篇文章主要介紹了解決Tomcat 中catalina.out持續(xù)累加問題 ,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03
Tomcat9使用免費(fèi)的Https證書加密網(wǎng)站的方法
這篇文章主要介紹了Tomcat9使用免費(fèi)的Https證書加密網(wǎng)站的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
詳解tomcat部署靜態(tài)html網(wǎng)站方法
這篇文章主要介紹了tomcat部署靜態(tài)html網(wǎng)站方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06
一篇文章徹底解決Win10系統(tǒng)下同時(shí)部署多個(gè)版本的Tomcat
在Windows系統(tǒng)上部署Tomcat服務(wù)器是一個(gè)相對簡單的過程,這篇文章主要介紹了Win10系統(tǒng)下同時(shí)部署多個(gè)版本Tomcat的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-08-08
Tomcat啟動(dòng)springboot項(xiàng)目war包報(bào)錯(cuò):啟動(dòng)子級時(shí)出錯(cuò)的問題
這篇文章主要介紹了Tomcat啟動(dòng)springboot項(xiàng)目war包報(bào)錯(cuò):啟動(dòng)子級時(shí)出錯(cuò)的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
centos6配置tomcat8開機(jī)自啟動(dòng)腳本
這篇文章主要介紹了centos6配置tomcat8開機(jī)自啟動(dòng)腳本的相關(guān)資料,需要的朋友可以參考下2018-01-01
詳解Tomcat多域名配置(多個(gè)項(xiàng)目共用80端口)
本篇文章主要介紹了Tomcat多域名配置(多個(gè)項(xiàng)目共用80端口),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06

