Tomcat目錄結構詳解


Tomcat目錄結構圖如下:

bin目錄

存放一些可執行的二進制文件,.sh結尾的為linux下執行命令,.bat結尾的為windows下執行命令。

  • catalina.sh:真正啟動tomcat文件,可以在里面設置jvm參數。
  • startup.sh:啟動tomcat(需事先配置好JAVA_HOME環境變量才可啟動,該命令源碼實際執行的為catalina.sh start)。
  • shutdown.sh:關閉tomcat。
  • version.sh:查看tomcat版本相關信息。

conf目錄

存放tomcat相關配置文件的。

catalina.policy

項目安全文件,用來防止欺騙代碼或JSP執行帶有像System.exit(0)這樣的命令,可能影響容器的破壞。 只有當Tomcat用-security命令行參數啟動時這個文件才會被使用,即啟動tomcat時, startup.sh -security 。

catalina.proterties

配置tomcat啟動相關信息文件

context.xml

監視並加載資源文件,當監視文件發生變化時,自動加載,通常不會去配置

jaspic-providers.xml和jaspic-providers.xsd

不常用文件

logging.properties

tomcat日志文件配置,包括輸出格式、日志級別等。

server.xml

核心配置文件:修改端口號,添加編碼格式等

核心組件介紹:

<1>Server:最頂層元素,而且唯一,代表整個tomcat容器。一個Server元素包含一個或者多個Service元素;

<2>Service:對外提供服務的。一個Service元素包含多個Connector元素,但是只能包含一個Engine元素;

<3>Connector:接收連接請求,創建Request和Response對象用於和請求端交換數據;然后分配線程讓Engine來處理這個請求,並把產生的Request和Response對象傳給Engine

<4>Engine:Engine組件在Service組件中有且只有一個;Engine是Service組件中的請求處理組件。Engine組件從一個或多個Connector中接收請求並處理,並將完成的響應返回給Connector,最終傳遞給客戶端。

<5>Host:代表特定的虛擬主機。

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">

name:虛擬主機的主機名。比如 localhost 表示本機名稱,實際應用時應該填寫具體域名,比如 www.dog.com ,當然如果該虛擬主機是給內部人員訪問的,也可以直接填寫服務器的 ip 地址,比如 192.168.1.101;

appBase:設置 Web 應用程序組的路徑。appBase 屬性的值可以是相對於 Tomcat 安裝目錄的相對路徑,也可以是絕對路徑,需要注意的是該路徑必須是 Tomcat 有權限訪問的;

unpackWARs:是否自動展開war壓縮包再運行Web應用程序,默認值為true;

autoDeplay:是否允許自動部署,默認值是 true,表示 Tomcat 會自動檢測 appBase 目錄下面的文件變化從而自動應用到正在運行的 Web 應用程序;

deployOnStartup:為true時,表示Tomcat在啟動時檢查Web應用,且檢測到的所有Web應用視作新應用;

<6>Context:該元素代表在特定虛擬主機Host上運行的一個Web應用,它是Host的子容器,每個Host容器可以定義多個Context元素。靜態部署Web應用時使用。

<Context path="/" docBase="E:\Resource\test.war" reloadable="true"/>

path:瀏覽器訪問時的路徑名,只有當自動部署完全關閉(deployOnStartup和autoDeploy都為false)或docBase不在appBase中時,才可以設置path屬性。

docBase:靜態部署時,docBase可以在appBase目錄下,也可以不在;本例中,不在appBase目錄下。

reloadable:設定項目有改動時,重新加載該項目。

tomcat-users.xml和tomcat-users.xsd

tomcat-users.xml:tomcat用戶配置文件,配置用戶名,密碼,用戶具備權限

tomcat默認沒有配置任何用戶,只有配置好用戶后才能使用以下Tomcat Manager三個功能:

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
<user username="admin" password="123456" roles="manager-script"/>

tomcat-users.xsd:對tomcat-users.xml文件的描述和約束

web.xml

web應用相關通用配置,可以做下面這些事情。

  • 配置servlet
  • 添加過濾器,比如過濾敏感詞匯
  • 設置session過期時間,tomcat默認30分鍾
  • 注冊了很多MIME類型,即文檔類型。這些MIME類型是客戶端與服務器之間說明文檔類型的,如用戶請求一個html網頁,那么服務器還會告訴客戶端瀏覽器響應的文檔是text/html類型的,這就是一個MIME類型
  • 配置系統歡迎頁

lib目錄

存放tomcat依賴jar包的。

其中ecj-x.x.x.jar起到了將.java文件編譯成.class字節碼文件的作用。

logs目錄

存放tomcat運行時產生的日志文件。

在windows環境中,日志文件輸出到catalina.xxxx-xx-xx.log文件中。

在linux環境中,日志文件輸出到catalina.out文件中。

大體有以下幾類:

catalina.xxxx-xx-xx.log windows下日志文件輸出內容
host-manager.xxxx-xx-xx.log 訪問webapps下host-manager項目日志
localhost.xxxx-xx-xx.log tomcat啟動時,自身訪問服務,只記錄tomcat訪問日志,而非業務項目日志
localhost_access_log.xxxx-xx-xx.txt 表示訪問tomcat下所有項目日志記錄
manager.xxxx-xx-xx.log 訪問webapps下manager項目日志

temp目錄

用戶存放tomcat在運行過程中產生的臨時文件(清空不會對tomcat運行帶來影響)。

webapps目錄

用來存放應用程序,可以以文件夾、war包、jar包的形式發布應用。當然也可以將應用程序放在磁盤的任意位置,在配置文件中映射好即可。

默認自帶以下5個項目:

work目錄

用於存放tomcat在運行時的編譯后文件(清空該目錄下所有內容,重啟tomcat,可達到清除緩沖的作用)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM