【JAVA后端入門基礎001】Tomcat 是什么?通俗易懂講清楚!

608564A16E7D652E882914E830EE4050(1)

📚博客主頁:代碼探秘者

?專欄:《JavaSe》 其他更新ing…

??感謝大家點贊👍🏻收藏?評論?🏻,您的三連就是我持續更新的動力??

🙏作者水平有限,歡迎各位大佬指點,相互學習進步!


img

概念篇

在 Java Web 開發中,Tomcat 是我們最常接觸的服務器之一。但很多初學者常常用它,卻不太清楚它到底是什么、能做什么、為什么要用它。這篇文章,我們就來用最簡單的語言,把 Tomcat 講清楚!


1?? Tomcat 是什么?

在這里插入圖片描述

Tomcat 是一個輕量級的 Web 服務器 + Servlet 容器,由 Apache 軟件基金會開發。

你可以把它理解為一個:

  • 能運行 Java Web 程序的“服務器軟件”;
  • 支持 JSP、Servlet 的“執行環境”。

📌 總結一句話:Tomcat 是用來運行 Java Web 項目的軟件。


2?? 為什么需要?

當你寫完一個 Web 項目后,想通過瀏覽器訪問,就需要一個服務器來運行它。Tomcat 就是這個“服務器”。

? 它能幫助你:

  • .jsp 頁面展示給用戶;
  • 處理表單提交(Servlet);
  • 接收瀏覽器請求并返回響應。

沒有 Tomcat,我們的 Java Web 項目就跑不起來。


3?? 核心組件(了解)

Tomcat 看起來復雜,但主要分為這幾個核心模塊👇:

模塊作用
Connector接收客戶端請求(通常是 HTTP 協議)
Engine核心處理引擎,負責請求的調度
Host表示一個虛擬主機,可以部署多個 Web 應用
Context表示一個具體的 Web 應用(即一個項目)
Servlet 容器執行你的 Java Servlet 和 JSP 頁面

4?? Tomcat 和真正的 Web 服務器有區別嗎?

有,但不大。

  • Tomcat 是 Servlet 容器 + 簡單的 HTTP 服務器
  • 真正的大型 Web 服務器如 Nginx、Apache HTTP Server、WebLogic 等,功能更強大,比如負載均衡、反向代理、靜態資源優化等。

👉 但對于大多數 Java 項目開發和部署,Tomcat 完全夠用


5?? 怎么用?

🧪 簡單幾步就能啟動 Tomcat:

  1. 下載 Tomcat(官網下載即可);
  2. 解壓后找到 bin/startup.bat(Windows)或 startup.sh(Linux);
  3. 啟動后,瀏覽器訪問 http://localhost:8080
  4. 默認端口是 8080;
  5. 把你的 Web 項目放到 webapps/ 目錄即可部署!

6?? Tomcat 日常開發中怎么配合使用?

📦 一般配合這些技術使用:

  • Java Web 項目(使用 Servlet / JSP);
  • Spring / Spring MVC / Spring Boot;
  • IDEA / Eclipse 等開發工具,直接支持 Tomcat 部署;
  • 前端頁面通過表單 / Ajax 向 Tomcat 發送請求。

7?? 常見問題小貼士

? Tomcat 啟動后打不開 localhost:8080?
? 檢查是否有防火墻、端口沖突,或 Java 環境配置問題。

? Tomcat 和 Java 有關系嗎?
? Tomcat 是用 Java 寫的,本身需要 Java 環境(JDK)才能運行。

? 一個電腦可以同時運行多個 Tomcat 嗎?
? 可以,但端口不能沖突,注意修改 server.xml 配置中的端口號。


? 總結一句話

Tomcat 就是 Java Web 程序的“跑步機”,你寫的代碼(JSP、Servlet)放上去,就能動起來,跑給瀏覽器看!


實操篇:Tomcat入門

1.Tomcat的目錄結構

image-20250210101839537

  • 1. server.xml 用于配置 tomcat 的基本設置(啟動端口,關閉端口,主機名)

  • 2. wex.xml 用于指定 tomcat 運行時配置(比如 servlet )

  • 3. webapps 目錄是存放 web 應用,就是網站

2.啟動

Tomcat的bin下輸入cmd(這樣默認cd到這個bin目錄了),命令行執行下面的

catalina run

等效于:

執行bin下的startup.bat文件

image-20250210103234701

瀏覽器執行:

http://localhost:8080/

出現虎圖標,執行成功!

image-20250210103404528

3.關閉

shutdown.bat是關閉文件

4.修改服務端口-8080

image-20250210104908160

5.部署項目

image-20250211190541081

5.1 方式1

  • 部署

image-20250211191322341

  • 訪問

image-20250211191110826

5.2 方式2-映射文件位置

  • 配置文件在Tomcat下的該目錄 .xml
conf\Catalina\localhost
  • 要求:輸入/lan,就去D:\java\jin\test01找
<Context path="/lan" docBase="D:\java\jin\test01"/>

如圖:

image-20250211195124333

  • 設置映射位置,web文件

image-20250211195502881

  • 訪問方式:lan是自己設置的
http://localhost:8080/lan/test.html

image-20250211195540677

5.3 Root

localhost:8080/

默認訪問Root項目

6.瀏覽器訪問 web服務器

文件UML時序圖

image-20250211184416747

主機名localhost和ip映射

  • 復制一個新的hosts文件(好像有時候不能直接修改
  • 修改內容,然后覆蓋原來的該文件

該目錄下hosts文件:

C:\Windows\System32\drivers\etc

image-20250211201403701

image-20250211201112862

7.啟動項目

點+

image-20250225211356578

image-20250225211500106

(1)熱加載:Tomcat自動更新類和資源

  • jsp,html文件修改時,立即生效
  • 如果是JAVA文件,Redeploy 重新發布才生效

(2)on frame deactivation

  • idea失去焦點(比如最小化,idea圖標閃爍,不是退出),也會導致jsp,html更新

(3)這里端口只影響項目端口,不影響配置文件的端口

image-20250225213254002

(4)out目錄(原項目資源的映射)才是瀏覽器真正訪問的地方

image-20250225213713063

如果是rebuild項目(project),就重新把寫的重新生成out目錄(=先刪out目錄,重新生成)

(5)項目框架

image-20250225214837334

(6)默認訪問

(1)默認訪問這個文件

image-20250225230042742

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/83289.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83289.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/83289.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TDengine 的 AI 應用實戰——電力需求預測

作者&#xff1a; derekchen Demo數據集準備 我們使用公開的UTSD數據集里面的電力需求數據&#xff0c;作為預測算法的數據來源&#xff0c;基于歷史數據預測未來若干小時的電力需求。數據集的采集頻次為30分鐘&#xff0c;單位與時間戳未提供。為了方便演示&#xff0c;按…

D2000平臺上Centos使用mmap函數遇到的陷阱

----------原創不易&#xff0c;歡迎點贊收藏。廣交嵌入式開發的朋友&#xff0c;討論技術和產品------------- 在飛騰D2000平臺上&#xff0c;安裝了麒麟linux系統&#xff0c;我寫了個GPIO點燈的程序&#xff0c;在應用層利用mmap函數將內核空間映射到用戶態&#xff0c;然后…

深入了解linux系統—— 進程間通信之管道

前言 本篇博客所涉及到的代碼一同步到本人gitee&#xff1a;testfifo 遲來的grown/linux - 碼云 - 開源中國 一、進程間通信 什么是進程間通信 在之前的學習中&#xff0c;我們了解到了進程具有獨立性&#xff0c;就算是父子進程&#xff0c;在修改數據時也會進行寫時拷貝&…

設計模式——模版方法設計模式(行為型)

摘要 模版方法設計模式是一種行為型設計模式&#xff0c;定義了算法的步驟順序和整體結構&#xff0c;將某些步驟的具體實現延遲到子類中。它通過抽象類定義模板方法&#xff0c;子類實現抽象步驟&#xff0c;實現代碼復用和算法流程控制。該模式適用于有固定流程但部分步驟可…

Python使用

Python學習&#xff0c;從安裝&#xff0c;到簡單應用 前言 Python作為膠水語言在web開發&#xff0c;數據分析&#xff0c;網絡爬蟲等方向有著廣泛的應用 一、Python入門 相關基礎語法直接使用相關測試代碼 Python編譯器版本使用3以后&#xff0c;安裝參考其他教程&#xf…

吳恩達機器學習筆記(1)—引言

目錄 一、歡迎 二、機器學習是什么 三、監督學習 四、無監督學習 一、歡迎 機器學習是當前信息技術領域中最令人興奮的方向之一。在這門課程中&#xff0c;你不僅會學習機器學習的前沿知識&#xff0c;還將親手實現相關算法&#xff0c;從而深入理解其內部機理。 事實上&…

java筆記08

多線程&JUC 1.什么是多線程 1.什么是多線程&#xff1f;有了多線程&#xff0c;我們就可以讓程序同時做多件事情 2.多線程的作用&#xff1f;提高效率 3.多線程的應用場景&#xff1f;只要你想讓多個事情同時運行就需要用到多線程比如&#xff1a;軟件中的耗時操作、所有…

【仿muduo庫實現并發服務器】使用正則表達式提取HTTP元素

使用正則表達式提取HTTP元素 1.正則表達式2.正則庫的使用3.使用正則表達式提取HTTP請求行 1.正則表達式 正則表達式它其實是描述了一種字符串匹配的模式&#xff0c;它可以用來在一個字符串中檢測一個特定格式的字串&#xff0c;以及可以將符合特定規則的字串進行替換或者提取…

顯示即戰略:鐵電液晶如何成為 “數字中國” 的 “像素基石”?

一、顯示技術&#xff1a;數字時代的核心戰略支點 &#xff08;一&#xff09;從 “視覺窗口” 到 “戰略基礎設施” 在數字經濟蓬勃發展的當下&#xff0c;顯示技術早已超越了單純的 “視覺呈現” 范疇&#xff0c;成為連接人與數字世界的關鍵接口。從智能手機、平板電腦到車…

適合小白的超詳細配置YOLOv8教程(畢設必看)(訓練自己數據集)(Pycharm保姆級安裝教程)(lablme的使用)(GPU版)

目錄 1.Pycharm的安裝和虛擬環境調用&#xff08;已經安裝好的可以跳過此步驟&#xff09; 1.1 下載pycharm軟件 1.2 調用已創建虛擬環境&#xff08;調用上一篇教程中創建好的虛擬環境&#xff09; 2.標注自己數據集&#xff08;已有數據集的這部分可跳過&#xff09; 2.1…

EC800X QuecDuino開發板介紹

支持的模組列表 EG800KEC800MEC800GEC800E 功能列表 基本概述 EC800X QuecDuino EVB 搭載移遠 EC800 系列模組。支持模組型號為&#xff1a; EC800M 系列、EC800K 系列、EG800K 系列、EC800E 系列等。 渲染圖 開發板的主要組件、接口布局見下圖 資料下載 EC800X-QuecDui…

Unity + HybirdCLR熱更新 入門篇

官方文檔 HybridCLR | HybridCLRhttps://hybridclr.doc.code-philosophy.com/docs/intro 什么是HybirdCLR? HybridCLR&#xff08;原名 huatuo&#xff09;是一個專為 Unity 項目設計的C#熱更新解決方案&#xff0c;它通過擴展 IL2CPP 運行時&#xff0c;使其支持動態加載和…

類 Excel 數據填報

類 Excel 填報模式&#xff0c;滿足用戶 Excel 使用習慣 數據填報&#xff0c;可作為獨立的功能模塊&#xff0c;用于管理業務流程、匯總采集數據&#xff0c;以及開發各類數據報送系統&#xff0c;因此&#xff0c;對于報表工具而言&#xff0c;其典型場景之一就是利用報表模…

MySQL 8.0 OCP 英文題庫解析(十)

Oracle 為慶祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免費考取原價245美元的MySQL OCP 認證。 從今天開始&#xff0c;將英文題庫免費公布出來&#xff0c;并進行解析&#xff0c;幫助大家在一個月之內輕松通過OCP認證。 本期公布試題81~90 試題81:…

JavaScript 性能優化實戰:從原理到框架的全棧優化指南

在 Web 應用復雜度指數級增長的今天&#xff0c;JavaScript 性能優化已成為衡量前端工程質量的核心指標。本文將結合現代瀏覽器引擎特性與一線大廠實踐經驗&#xff0c;構建從基礎原理到框架定制的完整優化體系&#xff0c;助你打造高性能 Web 應用。 一、性能優化基礎&#x…

基于Web的分布式圖集管理系統架構設計與實踐

引言&#xff1a;為什么需要分布式圖集管理&#xff1f; 在現代Web圖形應用中&#xff0c;紋理圖集&#xff08;Texture Atlas&#xff09;技術是優化渲染性能的關鍵手段。傳統的圖集制作流程通常需要美術人員使用專業工具&#xff08;如TexturePacker&#xff09;離線制作&am…

鴻蒙OS在UniApp中集成Three.js:打造跨平臺3D可視化應用#三方框架 #Uniapp

在UniApp中集成Three.js&#xff1a;打造跨平臺3D可視化應用 引言 在最近的一個項目中&#xff0c;我們需要在UniApp應用中展示3D模型&#xff0c;并實現實時交互功能。經過技術選型和實踐&#xff0c;我們選擇了Three.js作為3D渲染引擎。本文將分享我們在UniApp中集成Three.…

Flask中關于app.url_map屬性的用法

目錄 一、app.url_map 是什么? 二、可以查看哪些信息? 三、示例:打印所有路由 四、結合 url_for() 使用 五、常見用途場景 六、結合 Flask CLI 使用 總結 app.url_map 是 Flask 中非常重要的一個屬性,用于查看或操作整個應用的 URL 路由映射表(routing map)。它展…

SpringBoot項目搭建指南

SpringBoot項目搭建指南 文章目錄 SpringBoot項目搭建指南一、SpringBoot項目搭建1.1 SpringBoot 版本選擇1.2 SpringBoot 框架引入方式1.2.1 繼承 Starter Parent POM1.2.2 不使用 Parent POM 來使用 Spring Boot 1.3 SpringBoot 打包插件 二、日志框架引入2.1 引入SpringBoot…

數據庫系統概論(十六)數據庫安全性(安全標準,控制,視圖機制,審計與數據加密)

數據庫系統概論&#xff08;十六&#xff09;數據庫安全性 前言一、數據庫安全性1. 什么是數據庫安全性&#xff1f;2. 為何會存在安全問題&#xff1f; 二、安全標準的發展1. 早期的“開拓者”&#xff1a;TCSEC標準2. 走向國際統一&#xff1a;CC標準3. TCSEC和CC標準有什么不…