tomcat源碼調試


三、tomcat目錄結構

tomcat的下載安裝有很多教程,不再贅述。

現在的tomcat已經到9了,當tomcat下載安裝完成后,其目錄大致如下:

 
 

除了上面的文件夾,還有四個文件:

 
 

先介紹后4個文件:

  1. LICENSE:就是許可證,里面記錄了tomcat的一些條款等等。
  2. NOTICE:里面記錄了tomcat的新的通知,公告。
  3. RELEASE-NOTES:里面記錄的是發行版本的說明,一些捆綁的API,新特性等等。
  4. RUNNING.txt:記錄了tomcat的運行環境以及怎樣配置參數,變量,啟動等等。

再介紹文件夾(並不全):

3.1、bin文件夾

bin文件夾下面放的是可執行性文件,其中:bat/exe文件是Windows下可執行的腳本文件。sh文件時Linux/Unix下可執行的腳本文件。

  1. bootstrap.jar:這個jar包是引導程序jar包,是tomcat的入口。
  2. catalina.bat:一個重要腳本,這個腳本完成了很多基本操作,如啟動、關閉等,catalina.bat都參與其中,Windows中運行。
  3. catalina.sh:文件作用同catalina.bat,在Linux/Unix系統下運行。
  4. catalina-tasks.xml:配置文件,主要是引入各種jar包。
  5. configtest.bat:檢測語法是否正確的腳本文件。
  6. configtest.sh:同上。
  7. service.bat:啟動tomcat服務。和注冊tomcat服務那塊有關系。
  8. setclasspath.bat:設置classpath的腳本,在catalin.bat腳本中調用,可以設置java_home,jre_home等。
  9. shutdown.bat:主要是檢查catalina.bat執行所需環境,並調用catalina.bat批處理文件關閉tomcat服務。
  10. startup.bat:主要是檢查catalina.bat執行所需環境,並調用catalina.bat 批處理文件啟動tomcat服務。
  11. tcnative-1.dll:加速器組件,可以提高性能。
  12. tomcat-native.tar.gz:里面放的是tomcat本地的library。
  13. tool-wrapper.bat:工具包裝腳本。
  14. version.bat:一般是用來判斷系統版本獲取系統版本信息等。

3.1、conf文件夾

存放tomcat服務器的配置文件。

  1. catalina.policy:當Tomcat在安全模式下運行,此文件為默認的安全策略配置。
  2. catalina.properties:catalina環境變量配置。
  3. context.xml:用於定義所有Web應用均需要加載的Context配置,如果Web應用指定了自己的context.xml,那么該文件的配置會被覆蓋。
  4. logging.properties:日志配置文件,可修改日志級別和日志路徑等。
  5. server.xml:核心配置文件,用於配置鏈接器、監聽端口、處理請求的虛擬主機等,可以說,tomcat根據該配置文件創建服務器實例。
  6. tomcat-users.xml:tomcat配置用戶的文件,用於定義tomcat默認用戶及角色映射信息,tomcat的manage模塊使用該文件中定義的用戶進行安全認證。
  7. web.xml:tomcat中所有應用默認的部署描述文件,主要定義了基礎Servlet和MIME映射,如果應用中不包含web.xml,tomcat將使用此文件初始化部署描述,反之,tomcat會將默認部署描述與自定義配置進行合並。




Tomcat Server處理一個http請求的過程

假設來自客戶的請求為:http://localhost:8080/wsota/wsota_index.jsp
1) 請求被發送到本機端口8080,被在那里偵聽的Coyote HTTP/1.1 Connector獲得
2) Connector把該請求交給它所在的Service的Engine來處理,並等待來自Engine的回應
3) Engine獲得請求localhost/wsota/wsota_index.jsp,匹配它所擁有的所有虛擬主機Host
4) Engine匹配到名為localhost的Host(即使匹配不到也把請求交給該Host處理,因為該Host被定義為該Engine的默認主機)
5) localhost Host獲得請求/wsota/wsota_index.jsp,匹配它所擁有的所有Context
6) Host匹配到路徑為/wsota的Context(如果匹配不到就把該請求交給路徑名為""的Context去處理)
7) path="/wsota"的Context獲得請求/wsota_index.jsp,在它的mapping table中尋找對應的servlet
8) Context匹配到URL PATTERN為*.jsp的servlet,對應於JspServlet類
9) 構造HttpServletRequest對象和HttpServletResponse對象,作為參數調用JspServlet的doGet或doPost方法
10)Context把執行完了之后的HttpServletResponse對象返回給Host
11)Host把HttpServletResponse對象返回給Engine
12)Engine把HttpServletResponse對象返回給Connector
13)Connector把HttpServletResponse對象返回給客戶browser


免責聲明!

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



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