How Tomcat Works 4:Tomcat 的默认连接器

Tomcat 默认连接器,就是在上一章的简单连接器的基础上,可以和catalina 工作的一个更加完善的连接器。


这里说的tomcat 默认连接器仅仅局限于 tomcat4 版本。(事实上,默认连接器早已废弃使用,但是用来理解连接器的原理还是很有价值的)

一个Tomcat 默认连接器必须符合以下条件:

  1. 必须实现接口 org.apache.catalina.Connector
  2. 必须创建请求对象,该请求对象的类必须实现接口 org.apache.catalina.Request
  3. 必须创建响应对象,该响应对象的类必须实现接口 org.apache.catalina.Response

连接器的主要功能是:等待前来的HTTP请求,创建request 对象和response 对象,然后把request 和response 对象传递给容器

连接器是通过 org.apache.catalina.Container 的invoker 方法来传递Request 和Response 对象的。


Connector 接口

这个 org.apache.catalina.Connector 接口里面的重要的四个方法是:

getContainer ,setContainer , createRequest 和 createResponse

setContainer 方法是用来关联 连接器和容器的。

getContainer 方法返回关联的容器。

createRequest 为前来的HTTP 请求构造一个请求对象

createResponse 创建一个响应对象

HttpConnector 类

这个类实现了 Connector , Runnable , LifeCycle 接口

创建一个服务器套接字

维护HttpProcessor 实例

上一章维护的是一个HttpProcessor 实例,这里是维护的一个实例池,避免每次都要new 一个处理类

为Http 请求服务

HttpProcessor 类

请求对象

响应对象

处理请求

处理请求主要关注 HttpProcessor 类的 process 方法,

主要工作是:

  1. 解析连接
  2. 解析请求
  3. 解析头部

process 方法通过调用 parseConnection, parseRequest 和 parseHeaders 方法开始解析前来的 HTTP 请求
 

猜你喜欢

转载自blog.csdn.net/u014209205/article/details/84961879