tomcat深入??內部結構描述

發表于:2007-06-17來源:作者:點擊數: 標簽:
tomcat 服務器 是一種Servlet/jsp容器,更實質性的說是Servlet容器,因為jsp最終還是被編譯成servlet來執行的。而對于servlet來說,其最長見的用途是擴展 java web服務器功能,為來自web客戶的請求提供服務。它完全運行在java虛擬機上。 由于它的運行在服務

     tomcat服務器是一種Servlet/jsp容器,更實質性的說是Servlet容器,因為jsp最終還是被編譯成servlet來執行的。而對于servlet來說,其最長見的用途是擴展java web服務器功能,為來自web客戶的請求提供服務。它完全運行在java虛擬機上。

由于它的運行在服務器端,因此他的運行不依賴于瀏覽器。

   tomcat作為servlet容器,負責處理客戶請求,把請求傳給servlet并把結果返回給客戶。servlet容器與servlet之間的接口是由java servlet api定義的,在此api中定義了servlet的各種方法,這些方法在servlet生命周期的不容階段被servlet容器調用,servlet api還定義了servlet容器傳遞給servlet的對象類,如請求對象ServletRequest和相應對象ServletResponse

   tomcat服務器是由一系列可配置的組件構成,其中核心組件是Catalina Servlet容器,它是所有其他tomcat組件的頂層容器。tomcat的組件可以在conf/server.xml文件當中進行配置,每個tomcat組件在server.xml文件中進行配置,每個tomcat組件在server.xml文件中對應一種配置元素。具體見下:
<server>
<service>

<Connector>
</Connector>

<Engine>
<Host>
<Context></Context>
</Host>
</Engine>

</service>
</server>

1.頂層類元素:
<Server>和<Service>,他們位于整個配置文件的頂層
<Server>元素代表整個Catalina Servlet容器,它是tomcat實例的頂層元素。<Server>元素當中可包含一個或多個<service>元素。
<service>元素中包含一個<Engine>元素,以及一個或多個<Connector>元素,這些<Connector>元素共享同一個<Engine>元素

2.連接器類元素:
connector,它代表了介于客戶與服務器之間的通信接口,負責將客戶的請求發送給服務器,并將服務器的相應結果傳遞給客戶。
3.容器類元素
<Engine>,<Host>和<context〉
其中<Engine>組件處理在同一個<service>中所有<Connector>元素接受到的客戶請求
<Host>組件為特定的虛擬機處理所有客戶請求。每個<Host>元素定義了一個虛擬主機,它可以包含一個或多個web應用。
<context>組件為特定的web應用處理所有客戶請求。它是使用最頻繁的元素。每個<Context>元素代表了運行在虛擬機上的單個web應用,一個<Host>元素中可以包含多個<context>元素
說到<context>元素,java web應用的主要特征之一就是它與Context的關系,每個web應用有唯一的Context。當java web應用運行時,Servlet容器為每個web應用創建唯一的ServletContext對象,它被整個web應用中所有的組件共享。
如下代碼:
 <Context path="/reglog" docBase="reglog" debug="0" 
         crosscontext="true" reloadable="true">
 </Context>
你可以自己在server.xml當中定義一個context元素,設定你所存在項目的參數及屬性。其中path指定訪問web應用的url入口
docBase指定web應用的文件路徑,可以給定絕對路徑,也可以給定向對于host的appBase屬性的相對路徑
reloadable,如果這個屬性設為true,tomcat服務器在運行狀態下會監視在WEB-INF/classes和WEB-INF/lib目錄下class文件的改動,如果監測到有class文件被更新,服務器會自動重新加載web應用。

另外說一下tomcat的運行腳本
如果仔細研究一下tomcat的啟動和關閉腳本,會發現startup.bat和shutdown.bat都執行同一個目錄下的catalina.bat腳本。其實質是這樣的:執行startup.bat腳本,相當于執行了catalina start命令,執行shutdown.bat相當于執行了catalina stop命令。

common\lib,server\lib,shared\lib這三個目錄相信大家都見過吧,但具體是干什么用的呢?
其中server\lib下的jar文件只能被tomcat服務器訪問。
shared\lib下的jar文件可以被所有的web應用訪問,但不能被tomcat服務器訪問。
common\lib目錄下的jar文件可以被tomcat服務器和所有的web應用訪問

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97