Tc Config
Tomcat 啟動過程分析:
?IE 地址欄中敲 :
http://localhost:8080/wsota/ wsota_index.jsp
1 請求被發送到本機端口8080 ,被在哪里監聽的 Coyote HTTP/1.1 Connector 獲得
2 Connector 把該請求交給 它所在的Service 中的 Engine 引擎去處理
3 Engine獲得請求 localhost/wstoa/wstoa_index.jsp 匹配它所擁有的所有虛擬主機Host
4 Engine 匹配到名字為localhost 的Host (即使匹配不到也把請求交給該Host處理,因為該Host被定義為 該Engine的默認主機)
5 localhost Host 獲得請求 /wstoa/wstoa_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 對象和 HttpServletRespose 對象 作為參數調用 JspServlet的 doGet或doPost方法。
10Context 把執行完了之后的 HttpServletRespose對象返回給HOST
11 Host 把HttpServletRespose 對象返回給 Engine
12 Engine把 HttpServletRespose對象返回給 Connector
13 Connector把 HttpServletRespose 對象 返回給 Browser
?
Tomcat Server的組成部分
1.1 - Server
A Server element represents the entire Catalina servlet container. (Singleton)
1.2 - Service
A Service element represents the combination of one or more Connector components that share a single Engine
Service是這樣一個集合:它由一個或者多個Connector組成,以及一個Engine,負責處理所有Connector所獲得的客戶請求
1.3 - Connector
一個Connector將在某個指定端口上偵聽客戶請求,并將獲得的請求交給Engine來處理,從Engine處獲得回應并返回客戶
TOMCAT有兩個典型的Connector,一個直接偵聽來自browser的http請求,一個偵聽來自其它WebServer的請求
Coyote Http/1.1 Connector 在端口8080處偵聽來自客戶browser的http請求
Coyote JK2 Connector 在端口8009處偵聽來自其它WebServer(Apache)的servlet/jsp代理請求
1.4 - Engine
The Engine element represents the entire request processing machinery associated with a particular Service
It receives and processes all requests from one or more Connectors
and returns the completed response to the Connector for ultimate transmission back to the client
Engine下可以配置多個虛擬主機Virtual Host,每個虛擬主機都有一個域名
當Engine獲得一個請求時,它把該請求匹配到某個Host上,然后把該請求交給該Host來處理
Engine有一個默認虛擬主機,當請求無法匹配到任何一個Host上的時候,將交給該默認Host來處理
1.5 - Host
代表一個Virtual Host,虛擬主機,每個虛擬主機和某個網絡域名Domain Name相匹配
每個虛擬主機下都可以部署(deploy)一個或者多個Web App,每個Web App對應于一個Context,有一個Context path
當Host獲得一個請求時,將把該請求匹配到某個Context上,然后把該請求交給該Context來處理
匹配的方法是“最長匹配”,所以一個path==""的Context將成為該Host的默認Context
所有無法和其它Context的路徑名匹配的請求都將最終和該默認Context匹配
1.6 - Context
一個Context對應于一個Web Application,一個Web Application由一個或者多個Servlet組成
Context在創建的時候將根據配置文件$CATALINA_HOME/conf/web.xml和$WEBAPP_HOME/WEB-INF/web.xml載入Servlet類
當Context獲得請求時,將在自己的映射表(mapping table)中尋找相匹配的Servlet類
如果找到,則執行該類,獲得請求的回應,并返回
Tomcat start console
2008-7-10 10:38:49 org.apache.coyote.http11.Http11BaseProtocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2008-7-10 10:38:49 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 390 ms
2008-7-10 10:38:49 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2008-7-10 10:38:49 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/5.5.17
2008-7-10 10:38:49 org.apache.catalina.core.StandardHost start
信息: XML validation disabled
2008-7-10 10:38:50 org.apache.coyote.http11.Http11BaseProtocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2008-7-10 10:38:50 org.apache.catalina.storeconfig.StoreLoader load
信息: Find registry server-registry.xml at classpath resource
2008-7-10 10:38:50 org.apache.catalina.startup.Catalina start
信息: Server startup in 750 ms
Note:?
?在配置context.xml
?D:\Dev_tools\apache-tomcat-5.5.17\conf\Catalina\localhost
?example:
?<Context docBase="D:\Projects\zzesweb\web" path="/zzesweb"
???????? reloadable="true" antiResourceLocking="false" antiJARLocking="false">
???? <Resource
????? auth="Container"
????? name="jdbc/zzesweb"???
// <c:set var="dataSource" value="jdbc/zzesweb" scope="page"/>??
// <sql:query dataSource="${dataSource}" var ="rs"? scope="page../">
// sql
// </sql:query>
????? type="javax.sql.DataSource"
????? password="*"
????? driverClassName="com.mysql.jdbc.Driver"
????? maxIdle="30"
????? maxWait="5000"
????? username="root"
????? url="jdbc:mysql://localhost:13306/zzesweb?autoReconnect=true"
????? maxActive="100"/>
</Context>
posted on 2008-08-01 09:46 Anderson 閱讀(200) 評論(0) 編輯 收藏 所屬分類: java