如果把整个tomcat内核最高抽象程度模块化,可以看成是由连接器Connector和容器Container组成,连接器负责HTTP请求接收及响应,生成请求对象及响应对象并交由容器处理,而容器则根据请求路径找到相应的servlet进行处理。请求响应对象从连接器传送到容器需要一个桥梁,这个桥梁正是此节讨论的主角——CoyoteAdapter。
这个组件的结构非常简单,仅仅包含两个工具类,URLEncoder负责对字符串URL编码,StringManager负责日志的国际化,这两个工具前面已详细介绍过。这个组件的作用很明显就是充当一个适配器,把连接器与容器连接起来,它的主要工作包括:①根据底层Request和Response生成Connector使用的Request和Response(使用门面模式实现数据隔离机制导致存在多种Request和Response,详情移步前面“讲究门面的Request”章节);②调用容器管道。它的功能简单到没必要更多去讨论,但对于为什么要引入这个适配器我们还是有必要深入研究。