tomcat8 连接器
所属分类 tomcat
浏览量 898
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请求处理过程