隨筆 - 26, 文章 - 0, 評論 - 2, 引用 - 0
          數據加載中……

          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

          主站蜘蛛池模板: 荆门市| 蓝田县| 锡林郭勒盟| 海兴县| 吉木乃县| 澄城县| 平湖市| 黄石市| 青海省| 车致| 缙云县| 上犹县| 岳阳市| 黄梅县| 得荣县| 江油市| 玉林市| 洪泽县| 凤阳县| 裕民县| 揭阳市| 苍南县| 黄龙县| 哈尔滨市| 秀山| 阜宁县| 衡阳县| 白沙| 淳安县| 云安县| 乌兰县| 塘沽区| 九台市| 咸丰县| 巴塘县| 大渡口区| 珲春市| 淮安市| 临邑县| 镇平县| 尉氏县|