Tomcat链接器Connector的设计概述

目录

1、Connector的设计

2、从Tomcat应用服务器的设计视角看Connector


1、Connector的设计

想要与Container配合实现完整的服务器功能,Connector需要实现如下功能:

  • 监听服务器端口,读取来自客户端的请求。(AbstractEndpoint)
  • 将请求数据按照指定协议进行解析。(ProtocolHandler)
  • 根据请求地址匹配正确的容器进行处理。(Processor处理  Mapper映射匹配)
  • 将响应返回客户端。

 

ProtocolHandler:表示一个协议处理器,针对不同协议和I/O方式,提供不同的实现

AbstractEndpoint:由ProtocolHandler所包含的,用于启动Socket监听,这个抽象类按照I/O方式进行分类。如,Nio2Endpoint标识非阻塞式Socket I/O。

Processor:按照指定协议读取数据,并将请求交给容器处理。如Http11NioProcessor标识在NIO方式下HTTP请求的处理类。

Processor需要处理2件事情:

1、按照请求地址映射到具体容器。由Mapper类实现

2、监听容器的注册和销毁。由MapperListener类实现

注:Tomcat7之前,Mapper由Connector维护,Tomcat8之后,Mapper由Service维护。

 

2、从Tomcat应用服务器的设计视角看Connector

 

如上图所示,Tomcat通过适配器模式(Adapter)实现了Connector与Mapper、Container的解耦。Tomcat默认的Connector实现(Coyote)对应的适配器为CoyoteAdapter。也就是说,如果你希望使用Tomcat的链接器方案,又想脱离Servlet容器,你只需要实现自己的Adapter即可。当然,你还需要按照Container的定义开发你自己的容器实现(这个实现不一定要遵从Servlet规范)。

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值