深入解析Tomcat目錄結構

Apache Tomcat 是一個強大的 Servlet 容器,它不僅支持 Java Servlet 和 JSP 技術,還提供了豐富的功能來幫助開發者構建和部署動態的 Web 應用。為了更好地理解和使用 Tomcat,了解其文件結構和組成部分是至關重要的。本文將深入探討 Tomcat 的目錄結構及其各個組件的作用。

Tomcat 的文件結構和組成

目錄結構

目錄 說明
bin 服務啟動,停止等相關程序和文件
conf 配置文件
lib 庫目錄
log 日志目錄
webapps 應用程序,應用部署目錄
work jsp編譯后的結果文件,建議提前預熱訪問,升級應用后,刪除此目錄數據才能更新

查看tomcat相關目錄和文件

[root@ubuntu2404 tomcat]#pwd
/usr/local/src/tomcat
[root@ubuntu2404 tomcat]#ls
bin  BUILDING.txt  conf  CONTRIBUTING.md  lib  LICENSE  logs  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@ubuntu2404 tomcat]#ls bin/
bootstrap.jar       ciphers.sh                    daemon.sh     migrate.bat       shutdown.sh           tool-wrapper.bat
catalina.bat        commons-daemon.jar            digest.bat    migrate.sh        startup.bat           tool-wrapper.sh
catalina.sh         commons-daemon-native.tar.gz  digest.sh     setclasspath.bat  startup.sh            version.bat
catalina-tasks.xml  configtest.bat                makebase.bat  setclasspath.sh   tomcat-juli.jar       version.sh
ciphers.bat         configtest.sh                 makebase.sh   shutdown.bat      tomcat-native.tar.gz
[root@ubuntu2404 tomcat]#ls conf/
Catalina             context.xml           jaspic-providers.xsd  server.xml   tomcat-users.xml  web.xml
catalina.properties  jaspic-providers.xml  logging.properties    tomcat.conf  tomcat-users.xsd
[root@ubuntu2404 tomcat]#ls lib
annotations-api.jar       ecj-4.35.jar                          servlet-api.jar        tomcat-i18n-es.jar     tomcat-jdbc.jar
catalina-ant.jar          el-api.jar                            tomcat-api.jar         tomcat-i18n-fr.jar     tomcat-jni.jar
catalina-ha.jar           jakartaee-migration-1.0.9-shaded.jar  tomcat-coyote-ffm.jar  tomcat-i18n-ja.jar     tomcat-util.jar
catalina.jar              jasper-el.jar                         tomcat-coyote.jar      tomcat-i18n-ko.jar     tomcat-util-scan.jar
catalina-ssi.jar          jasper.jar                            tomcat-dbcp.jar        tomcat-i18n-pt-BR.jar  tomcat-websocket.jar
catalina-storeconfig.jar  jaspic-api.jar                        tomcat-i18n-cs.jar     tomcat-i18n-ru.jar     websocket-api.jar
catalina-tribes.jar       jsp-api.jar                           tomcat-i18n-de.jar     tomcat-i18n-zh-CN.jar  websocket-client-api.jar
[root@ubuntu2404 tomcat]#ls logs/
catalina.2025-05-03.log  catalina.out  localhost.2025-05-03.log  localhost_access_log.2025-05-03.txt
[root@ubuntu2404 tomcat]#ls webapps/
docs  examples  host-manager  manager  ROOT
[root@ubuntu2404 tomcat]#ls work/
Catalina
[root@ubuntu2404 tomcat]#ls work/Catalina/
localhost
[root@ubuntu2404 tomcat]#ls work/Catalina/localhost/
docs  examples  host-manager  manager  ROOT
[root@ubuntu2404 tomcat]#ls temp/
safeToDelete.tmp
[root@ubuntu2404 tomcat]#ll -i work/Catalina/localhost/
total 28
3804287 drwxr-x--- 7 tomcat tomcat 4096 May  3 18:24 ./
3804286 drwxr-x--- 3 tomcat tomcat 4096 May  3 18:24 ../
3804293 drwxr-x--- 3 tomcat tomcat 4096 May  3 18:29 docs/
3804290 drwxr-x--- 2 tomcat tomcat 4096 May  3 18:24 examples/
3804292 drwxr-x--- 3 tomcat tomcat 4096 May  3 19:05 host-manager/
3804288 drwxr-x--- 3 tomcat tomcat 4096 May  3 18:29 manager/
3804289 drwxr-x--- 3 tomcat tomcat 4096 May  3 18:28 ROOT/
[root@ubuntu2404 tomcat]#ll -i webapps/
total 28
3803488 drwxr-x---  7 tomcat tomcat 4096 Apr  1 22:40 ./
3803473 drwxr-xr-x  9 tomcat tomcat 4096 May  3 18:17 ../
3803491 drwxr-x--- 16 tomcat tomcat 4096 May  3 18:17 docs/
3803517 drwxr-x---  7 tomcat tomcat 4096 May  3 18:17 examples/
3803578 drwxr-x---  6 tomcat tomcat 4096 May  3 18:17 host-manager/
3803584 drwxr-x---  6 tomcat tomcat 4096 May  3 18:17 manager/
3803489 drwxr-x---  3 tomcat tomcat 4096 May  3 18:17 ROOT/
[root@ubuntu2404 tomcat]#tree work/Catalina/localhost/
work/Catalina/localhost/
├── docs
│   └── org
│       └── apache
│           └── jsp
│               └── WEB_002dINF
│                   └── jsp
├── examples
│   └── org
│       └── apache
│           └── jsp
│               └── WEB_002dINF
│                   └── jsp
├── host-manager
│   └── org
│       └── apache
│           └── jsp
│               └── WEB_002dINF
│                   └── jsp
├── manager
│   └── org
│       └── apache
│           └── jsp
│               └── WEB_002dINF
│                   └── jsp
└── ROOT└── org└── apache└── jsp29 directories, 2 files
[root@ubuntu2404 tomcat]#curl http://192.168.1.20:8080/
#當訪問過后,work目錄中生成新文件
[root@ubuntu2404 tomcat]#tree work/Catalina/localhost/
work/Catalina/localhost/
├── docs
│   └── org
│       └── apache
│           └── jsp
│               └── WEB_002dINF
│                   └── jsp
├── examples
│   └── org
│       └── apache
│           └── jsp
│               └── WEB_002dINF
│                   └── jsp
├── host-manager
│   └── org
│       └── apache
│           └── jsp
│               └── WEB_002dINF
│                   └── jsp
├── manager
│   └── org
│       └── apache
│           └── jsp
│               └── WEB_002dINF
│                   └── jsp
└── ROOT└── org└── apache└── jsp├── index_jsp.class   #字節碼文件└── index_jsp.java    #servlet文件#tomcat會自動的將jsp文件生成java源文件,再編譯成class文件
[root@ubuntu2404 tomcat]#less work/Catalina/localhost/ROOT/org/apache/jsp/index_jsp.java 
/** Generated by the Jasper component of Apache Tomcat* Version: Apache Tomcat/11.0.6* Generated at: 2025-05-03 11:25:58 UTC* Note: The last modified time of this file was set to*       the last modified time of the source file after*       generation to assist with modification tracking.*/
package org.apache.jsp;import jakarta.servlet.*;
import jakarta.servlet.http.*;
import jakarta.servlet.jsp.*;public final class index_jsp extends org.apache.jasper.runtime.HttpJspBaseimplements org.apache.jasper.runtime.JspSourceDependent,org.apache.jasper.runtime.JspSourceImports,org.apache.jasper.runtime.JspSourceDirectives {private static final jakarta.servlet.jsp.JspFactory _jspxFactory =jakarta.servlet.jsp.JspFactory.getDefaultFactory();private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;private static final java.util.Set<java.lang.String> _jspx_imports_packages;private static final java.util.Set<java.lang.String> _jspx_imports_classes;static {_jspx_imports_packages = new java.util.LinkedHashSet<>(4);_jspx_imports_packages.add("jakarta.servlet");_jspx_imports_packages.add("jakarta.servlet.http");

配置文件和日志

配置文件說明
官方幫助文檔:https://tomcat.apache.org/tomcat-10.1-doc/index.html
在tomcat安裝目錄下的 conf 子目錄中,有以下的 tomcat 的配置文件

文件名 說明
server.xml 主配置文件
web.xml 每個webapp只有“部署”后才能被訪問,它的部署方式通常由web.xml進行定義,其存放位置為WEB-INF/目錄中;此文件為所有的webapps提供默認部署相關的配置,每個web應用也可以使用專用配置文件,來覆蓋全局文件
context.xml 用于定義所有web應用均需加載的Context配置,此文件為所有的 webapps提供默認配置,每個web應用也可以使用自已專用的配置,它通常由專用的配置文件context.xml來定義,其存放位置為WEB-INF/目錄中,覆蓋全局的文件
tomcat-users.xml 用戶認證的賬號和密碼文件
catalina.policy 當使用security選項啟動tomcat時,用于為tomcat設置安全策略
catalina.properties Tomcat 環境變量的配置,用于設定類加載器路徑,以及一些與JVM調優相關參數
logging.properties Tomcat 日志系統相關的配置,可以修改日志級別和日志路徑等

注意:配置文件大小寫敏感
查看配置文件

[root@ubuntu2404 conf]#pwd
/usr/local/src/tomcat/conf
[root@ubuntu2404 conf]#wc -l context.xml jaspic-providers.xsd server.xml tomcat-users.xml web.xml catalina.properties jaspic-providers.xml logging.properties tomcat-users.xsd 31 context.xml52 jaspic-providers.xsd154 server.xml56 tomcat-users.xml4735 web.xml198 catalina.properties23 jaspic-providers.xml76 logging.properties59 tomcat-users.xsd5384 total

主要配置文件內容

[root@ubuntu2404 tomcat]#grep -v '\-\-' conf/server.xml
<?xml version="1.0" encoding="UTF-8"?>Licensed to the Apache Software Foundation (ASF) under one or morecontributor license agreements.  See the NOTICE file distributed withthis work for additional information regarding copyright ownership.The ASF licenses this file to You under the Apache License, Version 2.0(the "License"); you may not use this file except in compliance withthe License.  You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS"

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

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

相關文章

專題:2025抖音電商與微短劇行業研究報告|附150+份報告PDF匯總下載

原文鏈接&#xff1a;https://tecdat.cn/?p43595 當618大促的硝煙散去&#xff0c;抖音電商的生態分化愈發刺眼&#xff1a;服飾內衣以27.5%的份額穩坐頭把交椅&#xff0c;而無數中小商家卻在“流量荒”中掙扎。這場看似繁榮的盛宴里&#xff0c;平臺規則如同無形的手&#x…

3.Ansible自動化之-編寫和運行playbook

3.Ansible編寫和運行 Playbook Playbook 介紹 如果把 Ansible 的ad-hoc命令比作 “一次性腳本”&#xff08;適合臨時執行單個簡單任務&#xff09;&#xff0c;那么Playbook就是 “可重復執行的程序”&#xff08;適合復雜、多步驟的管理流程&#xff09;。 舉個例子&#…

Vue實時刷新,比如我提交審核,審核頁面還需要點查詢才能看到最新數據

refreshTimer: null,lastRefreshTime: null}; }, created() {console.log(組件創建&#xff0c;初始化數據...);this.loadLatestData();this.setupAutoRefresh(); }, activated() {// 當使用keep-alive時&#xff0c;組件激活時刷新數據console.log(組件激活&#xff0c;刷新數…

Docker入門:容器化技術的第一堂課

Docker入門&#xff1a;容器化技術的第一堂課 &#x1f31f; 你好&#xff0c;我是 勵志成為糕手 &#xff01; &#x1f30c; 在代碼的宇宙中&#xff0c;我是那個追逐優雅與性能的星際旅人。 ? 每一行代碼都是我種下的星光&#xff0c;在邏輯的土壤里生長成璀璨的銀河&#…

【SLAM】不同相機模型及其常見的鏈式求導推導

【SLAM】不同相機模型及其常見的鏈式求導推導1. 魚眼相機模型鏈式求導1. 魚眼相機畸變模型2. 雅可比矩陣的推導畸變坐標相對于歸一化坐標的雅可比矩陣 Hdz/dznH_{dz/dzn}Hdz/dzn?畸變坐標相對于相機內參的雅可比矩陣 Hdz/dzetaH_{dz/dzeta}Hdz/dzeta?3. 注意4. 輸入輸出含義5…

【人工智能】本地部署 KTransformers并加載大模型筆記

博主未授權任何人或組織機構轉載博主任何原創文章&#xff0c;感謝各位對原創的支持&#xff01; 博主鏈接 本人就職于國際知名終端廠商&#xff0c;負責modem芯片研發。 在5G早期負責終端數據業務層、核心網相關的開發工作&#xff0c;目前牽頭6G技術研究。 博客內容主要圍繞…

TDengine IDMP 高級功能(3. 概念解釋)

枚舉集 為提升數據的可閱讀性&#xff0c;IDMP 為數據提供枚舉類型。您可以將一些整型數定義為一具有可讀性的字符串。與其他軟件一樣&#xff0c;您可以定義多個枚舉集&#xff0c;每個枚舉集可以有多個枚舉量。您可以增加、刪除、修改、查詢枚舉集與枚舉量。 但獨特的是&am…

CUDA 入門教程(GPT優化版)

學習路徑 一、環境準備與快速入門 搭建開發環境 ○ 安裝 CUDA Toolkit,適用于 Windows(如 Visual Studio)或 Linux,確保你的設備為 NVIDIA GPU 并支持 CUDA。(wholetomato.com) ○ 如果你偏好輕量工具,也可用 VS Code + Nsight 開發環境進行 CUDA 編程。(wholetomato.com)…

react項目性能優化的hook

前言&#xff1a;在項目中開發中&#xff0c;性能優化是很重要的&#xff0c;react有提供專門的hook&#xff0c;useMemo 和useCallback 這里說一說他們。區別&#xff1a;特性useMemouseCallback返回值緩存一個 值&#xff08;計算結果&#xff09;緩存一個 函數依賴變化時重新…

Docker(springcloud筆記第三期)

p.s.這是萌新自己自學總結的筆記&#xff0c;如果想學習得更透徹的話還是請去看大佬的講解 目錄鏡像與容器一些命令與鏡像命名規范數據卷自定義鏡像Dockerfile鏡像與容器 當我們利用Docker安裝應用時&#xff0c;Docker會自動搜索并下載應用鏡像(image),鏡像不僅包含應用本身&…

MySQL定時任務詳解 - Event Scheduler 事件調度器從基礎到實戰

&#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有堅忍不拔之志 &#x1f390; 個人CSND主頁——Micro麥可樂的博客 &#x1f425;《Docker實操教程》專欄以最新的Centos版本為基礎進行Docker實操教程&#xff0c;入門到實戰 &#x1f33a;《RabbitMQ》…

redis存儲原理與對象模型

redis中的不同線程 redis單線程是指什么&#xff1f; redis的所有命令處理都在同一個線程中完成 redis為什么采用單線程&#xff1f; redis中存在多種數據結構存儲value&#xff0c;如果采用多線程&#xff0c;加鎖會很復雜、加鎖力度不阿紅控制&#xff0c;同時&#xff0c…

基于微信小程序的家教服務平臺的設計與實現/基于asp.net/c#的家教服務平臺/基于asp.net/c#的家教管理系統

基于微信小程序的家教服務平臺的設計與實現/基于asp.net/c#的家教服務平臺/基于asp.net/c#的家教管理系統

安全審計-iptales防火墻設置

文章目錄一、iptales防火墻設置1.ip規則設置2.ip端口規則設置3.刪除規則4.INPUT默認設置5.ping、本地訪問規則6.保存還原規則7.查看清除規則一、iptales防火墻設置 1.ip規則設置 #允許ip訪問本服務器 iptables -I INPUT -s 192.168.205.129 -p tcp -j ACCEPT#允許某IP或某網段…

Linux小白加油站,第二周

1.grep命令中哪個選項可以忽略大小寫進行搜索?grep -i 2.如何用grep命令查找包含”error關鍵字的日志文件并返回文件名?grep -lr3.解釋grep命令中^f...d$這個表達式的含義^f&#xff1a;以f開頭..&#xff1a;任意兩個字符d$&#xff1a;以d結尾4.如何過濾掉文件中的注釋行以…

【前端基礎】19、CSS的flex布局

一、FlexBox概念 FlexBox翻譯為彈性盒子。 彈性盒子是一種用于按行或按列布局元素的一維布局方式。元素可以膨脹以填充額外的空間&#xff0c;收縮以適應更小的空間。我們使用FlexBox來進行布局的方案稱為flex布局。二、flex布局的重要概念 兩個重要的概念 開啟flex布局的元素叫…

Effective C++ 條款46:需要類型轉換時請為模板定義非成員函數

Effective C 條款46&#xff1a;需要類型轉換時請為模板定義非成員函數核心思想&#xff1a;當模板類需要支持隱式類型轉換時&#xff0c;應將非成員函數聲明為友元并定義在類內部&#xff08;或通過輔助函數實現&#xff09;&#xff0c;以繞過模板參數推導的限制&#xff0c;…

用Python對機器學習數據進行縮放

許多機器學習算法期望數據被一致地縮放。 在為機器學習擴展數據時&#xff0c;你應該考慮兩種常用的方法。 在這個教程中&#xff0c;您將了解如何為機器學習重新縮放您的數據。閱讀完這個教程后&#xff0c;您將知道&#xff1a; 如何從頭開始對您的數據進行標準化。如何從…

Application-properties 配置大全

SpringBoot - application.properties 配置大全 SpringBoot項目最重要也是最核心的配置文件就是application.properties&#xff0c;所有的框架配置都需要在這個配置文件中說明&#xff0c;以下配置不會的可以進行查閱并修改 &#xff03;SPRING CONFIG&#xff08;ConfigFileA…

MXFP4量化:如何在80GB GPU上運行1200億參數的GPT-OSS模型

大型語言模型&#xff08;Large Language Models, LLMs&#xff09;如GPT-OSS、GPT-4、LLaMA和Mixtral的快速發展顯著提升了人工智能的能力邊界&#xff0c;但同時也帶來了嚴峻的內存資源挑戰。以1200億參數的模型為例&#xff0c;在FP16精度下僅權重存儲就需要約240GB的內存空…