本文主要是介绍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那一层),待续...
这篇关于tomcat6源码学习---1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!