首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

tomcat6源码学习-一

2012-11-08 
tomcat6源码学习---1tomcat通过Bootstrap启动,同时将各种配置组合成Catalina读取server.xml,将参数读到Ca

tomcat6源码学习---1
tomcat通过Bootstrap启动,同时将各种配置组合成Catalina;
读取server.xml,将参数读到Catalina及下属的对象里,启动start()时,也会调用下属对象的start().
Top Level Elements:
Server
Service  
   Connector
      HTTP
      AJP
   Container
      Engine
        Host
         Context
....具体树形再补充

Tomcat6.x使用Coyote模块来实现Connector框架
server.xml文件中指定协议和协议处理器的类名。如下:
<Connector port="8089" protocol="AJP/1.3" redirectPort="8443" />

<Connector port="8089" protocol="HTTP/1.1" connectionTimeout="20000"
               redirectPort="8443" />

在构造连接器时,连接器根据是否支持Apache Portable Runtime (APR),选择不同的类支持HTTP协议和AJP协议,其对应关系如下:

支持APR
HTTP/1.1协议对应org.apache.coyote.http11.Http11AprProtocol类
AJP/1.3协议对应org.apache.coyote.ajp.AjpAprProtocol类

不支持APR
HTTP/1.1协议对应org.apache.coyote.http11.Http11Protocol类
AJP/1.3协议对应org.apache.jk.server.JkCoyoteHandler类


如果按
<Connector port="8089" protocol="HTTP/1.1" connectionTimeout="20000"
               redirectPort="8443" />写法,
在tomcat启动时将会org.apache.tomcat.util.net.JIoEndpoint中Acceptor (socket acceptor线程)的run,随时相应url.

然后调用org.apache.catalina.connector.CoyoteAdapter的service处理(到Context那一层),待续...

热点排行