Tomcat源码分析--Connector(连接器)

3 篇文章 1 订阅

      在上一篇中分析了Tomcat的启动过程。也提到了Service会启动Connector。现在让我们来看看Connector具体做了什么。

      从Connector类中有两个比较重要的属性:protocolHandler(协议)和adapter(适配器)。既然是连接器,(1)需要具备接收客户端请求的连接。(2)然后将客户端的socket请求的数据,解析和包装成为Http数据格式。(3)然后将Http数据包交给容器去处理。protocolHandler完成(1)(2),adapter完成(3)。

1.Connector构造函数
这里写图片描述
在Connector构造函数中,通过反射生成protocolHandler。协议的设置在conf/server.xml中配置,通过setProtocol来赋值。

2.Connector的初始化方法。
在Connector调用initInternal的初始化方法。主要完成了2个操作:

  1. 初始化适配器。
  2. 初始化protocolHandler的init()方法。
    这里写图片描述
    protocolHandler的init方法会调用父类AbstractProtocol的init方法。
    这里写图片描述
    其父类的init()方法会调用endpoint的init方法。endpoint提供了底层的网络i/o 连接。

3.Connector的Start方法。
介绍完Connector的Init方法,我们来看看Connector的start方法。
这里写图片描述
Connector方法中调用了protoHandler的start方法。protoHandler是个接口,我们以其具体的实现类Http11NioProtocol来介绍。从类名上可以看出,该类使用的是Java nio的方式进行连接的。Http11NioProtocol会最终调用其底层的Nio实现类NioEndPoint来接收请求。
这里写图片描述
至此Connector启动完成。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值