🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### Connector Connector 组件是 Tomcat 中两个核心组件之一,它的主要任务是负责接收浏览器的发过来的 tcp 连接请求,创建一个 Request 和 Response 对象分别用于和请求端交换数据,然后会产生一个线程来处理这个请求并把产生的 Request 和 Response 对象传给处理这个请求的线程,处理这个请求的线程就是 Container 组件要做的事了。 由于这个过程比较复杂,大体的流程可以用下面的顺序图来解释: ![](https://img.kancloud.cn/34/ab/34abdb47e6a2b893eb5ef496598a132a_572x519.png) Tomcat5 中默认的 Connector 是 Coyote,这个 Connector 是可以选择替换的。Connector 最重要的功能就是接收连接请求然后分配线程让 Container 来处理这个请求,所以这必然是多线程的,多线程的处理是 Connector 设计的核心。 当 Connector 将 socket 连接封装成 request 和 response 对象后接下来的事情就交给 Container 来处理 连接器功能需求: * 监听网络端口。 * 接受网络连接请求。 * 读取请求网络字节流。 * 根据具体应用层协议(`HTTP/AJP`)解析字节流,生成统一的`Tomcat Request`对象。 * 将`Tomcat Request`对象转成标准的`ServletRequest`。 * 调用`Servlet`容器,得到`ServletResponse`。 * 将`ServletResponse`转成`Tomcat Response`对象。 * 将`Tomcat Response`转成网络字节流。 * 将响应字节流写回给浏览器