tomcat工作原理及目錄文件介紹

tomcat工作原理及目錄文件介紹

1tomcat背景

自從JSP發佈之後,推出了各式各樣的JSP引擎。Apache Group在完成GNUJSP1.0的開發以後,開始考慮在SUNJSWDK基礎上開發一個可以直接提供Web服務的JSP服務器,當然同時也支持Servlet, 這樣tomcat就誕生了。tomcatjakarta項目中的一個重要的子項目,其被JavaWorld雜誌的編輯選爲2001年度最具創新的java產品,同時它又是sun公司官方推薦的servletjsp容器,因此其越來越多的受到軟件公司和開發人員的喜愛。servletjsp的最新規範都可以在tomcat的新版本中得到實現。其次,tomcat是完全免費的軟件,任何人都可以從互聯網上自由地下載。tomcatApache的組合相當完美。

2tomcat Server處理一個http請求的過程

假設來自客戶的請求爲:http://localhost:8080/wsota/wsota_index.jsp

1、請求被髮送到本機端口8080,被在那裏偵聽的CoyoteHTTP/1.1 Connector獲得

2Connector把該請求交給它所在的ServiceEngine來處理,並等待來自Engine的迴應

3 Engine獲得請求localhost/wsota/wsota_index.jsp,匹配它所擁有的所有虛擬主機Host

4Engine匹配到名爲localhostHost(即使匹配不到也把請求交給該Host處理,因爲該Host被定義爲該Engine的默認主機)

5 localhost Host獲得請求/wsota/wsota_index.jsp,匹配它所擁有的所有Context

6Host匹配到路徑爲/wsotaContext(如果匹配不到就把該請求交給路徑名爲""Context去處理)

7path="/wsota"Context獲得請求/wsota_index.jsp,在它的mapping table中尋找對應的servlet

8Context匹配到URLPATTERN*.jspservlet,對應於JspServlet

9、構造HttpServletRequest對象和HttpServletResponse對象,作爲參數調用JspServletdoGetdoPost方法

10Context把執行完了之後的HttpServletResponse對象返回給Host

11HostHttpServletResponse對象返回給Engine

12EngineHttpServletResponse對象返回給Connector

13ConnectorHttpServletResponse對象返回給客戶browser

3tomcat目錄詳細解析

3.1bin目錄

bin目錄主要用來存放tomcat的命令,很多環境變量也在此處設置。以.sh結尾的代表Linux下的命令;以.bat結尾的代表Windows下的命令。其中startup.bat代表windows系統下啓動tomcat的命令;shutdown.bat代表Windows系統下關閉tomcat的命令。同理startup.sh代表Linux下的啓動tomcat的命令;shutdown.sh代表linux下關閉tomcat的命令。詳細介紹如下所示。

bin目錄中的腳本說明

文件名稱

文件作用

catalina.sh

tomcat主要腳本,用於啓動和關閉tomcat服務器

startup.sh

啓動運行tomcat實例,相當於 catalina.sh   start

shutdown.sh

停止tomcat實例的運行,相當於   catalina.sh stop

daemon.sh

tomcat服務的啓動腳本,可以複製到/etc/init下使用

catalina-tasks.xml

 定義tomcat載入的庫文件,類文件

version.sh

查看當前tomcat的版本信息

configtest.sh

校驗tomcat配置文件server.xml的格式、內容等是否合法、正確

setclasspath.sh

catalina.sh依賴這個腳本來設置tomcatclasspath等環境變量

digest.sh

用於生成加密過的tomcat用戶密碼

tool-wrapper.sh

一般和digest腳本結合使用

bootstrap.jar

tomcat啓動時所依賴的一個類,在啓動tomcat時會發現Using CLASSPATH: 是加載的這個類

commons-daemon.jar

jsvc工具所依賴的java

commons-daemon-native.tar.gz

jsvc工具,可以使tomcat以守護進程方式運行,需單獨編譯安裝

tomcat-juli.jar

是一款在使用tomcat開發時十分關鍵的一款jar

tomcat-native.tar.gz

使tomcat可以使用apacheapr運行庫,以增強tomcat的性能需單獨編譯安裝

3.2conf目錄

conf目錄主要存放tomcat服務器全局配置的各種文件,詳見以下說明。

conf目錄中配置文件說明

catalina.policy

tomcat 安全機制的配置文件,默認情況下 tomcat   是非安全模式運行的,只有當tomcat-security命令行參數啓動時這個文件纔會被使用,該文件可以配置tomcat對文件系統中目錄或文件的讀、寫執行等權限,及對一些內存,session等的管理權限

catalina.properties

catalina.properties Catalina 的配置文件,主要有安全設置、類加載設置、不需要掃描的類設置、字符緩存設置四大塊。配置tomcatclasspath

context.xml

tomcat的默認context容器,可被所有的web應用程序使用.這個文件默認地可以設置到何處訪問各web應用程序中的web.xml文件。context.xml tomcat 6.0 時從 server.xml 中分離出來,主要用於項目部署的配置。

server.xml

tomcat中最重要的配置文件,也是最常用的一個,用於對整個容器進行相關的配置,解析器用這個文件在啓動時根據規範"創建"容器

web.xml

tomcat的應用程序的部署描述符文件,是所有Web項目的缺省配置文件。

tomcat-users.xml

tomcat的角色(授權用戶)配置文件,用於訪問tomcat管理應用程序時的安全性設置,用server.xml中引用的默認的用戶數據庫域(UserDatabase Realm)使用它,所有的憑據都是默認被註釋的。

tomcat-users.xsd

定義了 tomcat-users.xml 所使用到的標籤

logging.properties

tomcat 的日誌配置文件,用於配置tomcat的日誌輸出方式和日誌級別。

jaspic-providers.xml

tomcat 實現了 JASPIC 1.1   Maintenance Release B 標準,並通過這個配置文件集成第三方   JASPIC 身份驗證

jaspic-providers.xsd

定義了 jaspic-providers.xml 所使用到的標籤

3.3lib目錄

lib目錄下主要存放tomcat服務器所需要的所有Jar包。我們在連接數據庫時常常煩惱每創建一個項目就要引入一個對應的oracleJar包或MySQLJar。但是如果你把這兩個Jar包放在此目錄下,就可以引入一次,以後再創建項目時不需要每次都引入Jar包。

3.4logs目錄

logs目錄用來存放tomcat在運行過程中產生的日誌文件,非常重要的是在控制檯輸出的日誌。(清空不會對tomcat運行帶來影響) windows環境中,控制檯的輸出日誌在catalina.xxxx-xx-xx.log文件中。在linux環境中,控制檯的輸出日誌在catalina.out文件中

3.5temp目錄

temp 文件夾用於存放 tomcat 在運行過程中產生的 臨時文件temp 文件夾可以被清空,但是不能隨意刪除,否則會有未知錯誤發生。

3.6webapps目錄

webapps目錄是tomcat默認存放應用程序的目錄,好比apache的默認網頁存放路徑是/var/www/html一樣,當tomcat啓動時會去加載webapps目錄下的應用程序。可以以文件夾、war包、jar包的形式發佈應用。當然,你也可以把應用程序放置在磁盤的任意位置,在配置文件中映射好就行。該目錄中介紹如下

webapps目錄介紹

docs

tomcat文檔存放目錄

examples

tomcat自帶的一個獨立的web應用程序例子存放位置

host-manager

tomcat的主機管理應用程序存放位置

host-manager目錄中文件介紹

META-INF

整個應用程序的入口,用來描述jar文件的信息

context.xml

當前應用程序的context容器配置,它會覆蓋tomcat/conf/context.xml中的配置

WEB-INF

用於存放當前應用程序的私有資源

images

存放應用程序相關圖片文件

index.jsp

應用程序的網頁文件

manager.xml

應用程序的管理配置文件

manager

tomcat的管理應用程序

ROOT

tomcat的應用程序的根,如果應用程序部署在ROOT中,則可直接通過http://ip:port 訪問到

 

3.7work目錄

work目錄用於存放JSP應用程序在部署時編譯後產生的class文件,清空work目錄,然後重啓tomcat,可以達到清除緩存的作用。

3.8LICENSE 文件

LICENSE 文件是tomcat 開源許可證文件。

3.9NOTICE 文件

NOTICE 文件是tomcat 說明文件。

3.10RELEASE-NOTES 文件

RELEASE-NOTES 文件是tomcat 版本說明文件。

3.11RUNNING.txt 文件

RUNNING.txt 文件是tomcat 幫助文件(使用指南)。

 

4catalina.sh | catalina.bat腳本文件使用方法

語法格式:catalina.sh 選項

例如:catalina.sh start  #啓動tomcat

catalina.sh腳本可用選項如下:

catalina.sh腳本選項及說明

選項名稱

選項作用

debug

debug模式啓動

debug -security

啓用catalina.policy文件

jpda start

jpda(Java Platform Debugger Architecture)調試器的模式啓動

run

即使是在linux,也不會將輸出重定向到日誌文件,就像和windows(那個一直開着的黑窗口)一樣的效果

start

啓動tomcat

stop n

停止tomcat,最多有n秒的延遲來處理釋放資源等的操作

stop

相當於 stop 5

stop n -force

停止tomcat,最多n秒延遲,n秒之後會強制killtomcat

stop -force

相當於 stop 5 --force

configtest

檢測配置文件${catalina.home}/conf/server.xml語法

version

tomcat版本信息

5tomcat環境變量說明

tomcat環境變量說明

環境變量名稱

環境變量說明

CATALINA_HOME

 tomcat安裝目錄

CATALINA_OPTS

一般是傳遞JVM參數使用的,比如-Xmx256M

CATALINA_TMPDIR

tomcat臨時文件目錄

JAVA_HOME

JDK安裝目錄

JRE_HOME

JRE安裝路徑

JAVA_OPTS

傳遞JVM參數使用的,比如-Xmx256M

JPDA_TRANSPORT

JPDA調試器使用的傳輸協議

JPDA_ADDRESS

制定和catalina.sh jpda start 一起使用的jpda地址

JSSE_HOME

指定用於https使用的Java Secure SocketsExtension的位置

CATALINA_PID

進程描述符位置

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章