首页  

tomcat8 连接器     所属分类 tomcat 浏览量 753
tomcat8.5.0

Connector  连接器
负责处理请求,创建Request和Response对象,Connector把Request和Response对象传递给  Container容器的线程处理
启动时初始化Connector,调用start()开启Connector,开始监听 处理请求

public class Connector extends LifecycleMBeanBase 
    // Coyote Protocol handler class name.Defaults to the Coyote HTTP/1.1 protocolHandler.   
    protected String protocolHandlerClassName = "org.apache.coyote.http11.Http11NioProtocol";

    // Coyote protocol handler.   
    protected final ProtocolHandler protocolHandler;

    // Coyote adapter.
    protected Adapter adapter = null;
    
    

public Connector(String protocol)

public void setProtocol(String protocol)

boolean aprConnector = AprLifecycleListener.isAprAvailable() && AprLifecycleListener.getUseAprConnector();
是否启用  apr 连接 
Apache Portable Runtime (APR) based Native library for Tomcat

连接协议 HTTP/1.1 AJP/1.3

http连接 AJP连接
AJP(Apache JServ Protocol) 使用二进制格式来传输可读性文本 提升性能
apache 连接 tomcat  采用  AJP连接

org.apache.coyote.http11.Http11NioProtocol
org.apache.coyote.http11.Http11AprProtocol

org.apache.coyote.ajp.AjpNioProtocol
org.apache.coyote.ajp.AjpAprProtocol

重点看 org.apache.coyote.http11.Http11NioProtocol


ProtocolHandler 协议处理器
处理  HTTP/1.1 AJP/1.3 等连接协议
实现类
org.apache.coyote.http11.Http11NioProtocol
org.apache.coyote.http11.Http11Nio2Protocol
Http11Nio2Protocol HTTP/1.1 protocol implementation using NIO2

基于 BIO NIO AIO等IO方式,实现监听端口、读写socket数据的功能
通过EndPoint封装实现不同的IO方式
EndPoint 处理IO读写,交给Tomcat线程池中的一个线程来处理

SocketProcessor根据protocolHandler采用的协议,调用process方法处理请求
adapter(适配器),适配请求/响应数据

protocolHandler 找到socket对应的处理器(如Http11Processor)
然后进行数据读写 适配 处理
请求由adapter最终会交给servlet处理



例子代码
https://gitee.com/dyyx/demos/tree/master/tomcatdemo

上一篇     下一篇
springboot基础配置

mysql redo undo binlog

tomcat8 嵌入式 servlet 实例

Tomcat NIO 处理机制

tomcat8的后台线程

tomcat请求处理过程