Tomcat 目錄結構圖如下:
1、bin 目錄
存放一些可執行的二進制文件,****.sh 結尾的為 linux 下執行命令,****.bat 結尾的為 windows 下執行命令。
- catalina.sh:真正啟動 tomcat 文件,可以在里面設置 jvm 參數。
- startup.sh:啟動 tomcat(需事先配置好 JAVA_HOME 環境變量才可啟動,該命令源碼實際執行的為 catalina.sh start)。
- shutdown.sh:關閉 tomcat。
- version.sh:查看 tomcat 版本相關信息。
2、conf 目錄
存放 tomcat 相關配置文件的。
2.1、catalina.policy
項目安全文件,用來防止欺騙代碼或 JSP 執行帶有像 System.exit (0) 這樣的命令,可能影響容器的破壞。 只有當 Tomcat 用 - security 命令行參數啟動時這個文件才會被使用,即啟動 tomcat 時, startup.sh -security 。
2.2、catalina.proterties
配置 tomcat 啟動相關信息文件
2.3、context.xml
監視并加載資源文件,當監視文件發生變化時,自動加載,通常不會去配置
2.4、jaspic-providers.xml 和 jaspic-providers.xsd
不常用文件
2.5、logging.properties
tomcat 日志文件配置,包括輸出格式、日志級別等。
2.6、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:Resourcetest.war" reloadable="true"/>
**path:** 瀏覽器訪問時的路徑名,只有當自動部署完全關閉 (deployOnStartup 和 autoDeploy 都為 false) 或 docBase 不在 appBase 中時,才可以設置 path 屬性。
**docBase:** 靜態部署時,docBase 可以在 appBase 目錄下,也可以不在;本例中,不在 appBase 目錄下。
**reloadable:** 設定項目有改動時,重新加載該項目。
2.7、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 文件的描述和約束
2.8、web.xml
web 應用相關通用配置,可以做下面這些事情。
- 配置 servlet
- 添加過濾器,比如過濾敏感詞匯
- 設置 session 過期時間,tomcat 默認 30 分鐘
- 注冊了很多 MIME 類型,即文檔類型。這些 MIME 類型是客戶端與服務器之間說明文檔類型的,如用戶請求一個 html 網頁,那么服務器還會告訴客戶端瀏覽器響應的文檔是 text/html 類型的,這就是一個 MIME 類型
- 配置系統歡迎頁
3、lib 目錄
存放 tomcat 依賴 jar 包的。
其中 ecj-x.x.x.jar 起到了將.java 文件編譯成.class 字節碼文件的作用。
4、logs 目錄
存放 tomcat 運行時產生的日志文件。
在 windows 環境中,日志文件輸出到 catalina.xxxx-xx-xx.log 文件中。
在 linux 環境中,日志文件輸出到 catalina.out 文件中。
大體有以下幾類:
catalina.xxxx-xx-xx.logwindows 下日志文件輸出內容host-manager.xxxx-xx-xx.log訪問 webapps 下 host-manager 項目日志localhost.xxxx-xx-xx.logtomcat 啟動時,自身訪問服務,只記錄 tomcat 訪問日志,而非業務項目日志localhost_access_log.xxxx-xx-xx.txt表示訪問 tomcat 下所有項目日志記錄manager.xxxx-xx-xx.log訪問 webapps 下 manager 項目日志
5、temp 目錄
用戶存放 tomcat 在運行過程中產生的臨時文件(清空不會對 tomcat 運行帶來影響)。
6、webapps 目錄
用來存放應用程序,可以以文件夾、war 包、jar 包的形式發布應用。當然也可以將應用程序放在磁盤的任意位置,在配置文件中映射好即可。
默認自帶以下 5 個項目:
7、work 目錄
用于存放 tomcat 在運行時的編譯后文件(清空該目錄下所有內容,重啟 tomcat,可達到清除緩沖的作用)
作者:京東科技 楊建
來源:京東云開發者社區 轉載請注明來源