读书人

Coder 爱通译 How Tomcat Works 第三章

发布时间: 2012-09-29 10:30:01 作者: rapoo

Coder 爱翻译 How Tomcat Works 第三章 第二部分
The Connector(连接器)

HttpConnector类代表了一个负责创建一个等待HTTP请求的服务器socket连接器。
HttpConnector类实现了java.lang.Runnable接口,所以它可以当做自己的一个独立的线程。当你启动这个应用程序,一个HttpConnector的实例就被创建,然后它执行它的run方法。

run方法包含一个while循环来处理下面的事情:
?等待HTTP请求
?为每一个请求创建一个HttpProcessor实例
?调用这个HttpProcessor的process方法

你可以看到,这HttpConnector类和之前的HttpServer1类很相像。除了当从java.net.ServerSocket的accept方法获得了一个socket后,一个HttpProcessor实例被创建,和调用process方法,传递socket。

注意:HttpConnector类的另外一个方法getScheme是返回scheme(HTTP)。

HttpProcessor类的process方法接收一个从HTTP请求来的socket。对于每一个来访的HTTP请求,做了一下事情:
?创建一个HttpRequest对象。
?创建一个HttpResponse对象
?解析HTTP请求的第一行、头信息和填充HttpRequest对象。
?传递HttpRequest和HttpResponse对象给ServletProcessor或StaticResourceProcessor。ServletProcessor调用被请求的servlet的service方法。StaticResourceProcessor发送静态资源内容。


Process方法在获取了socket的输入流和输出流后开始执行。注意:在这个方法我们使用继承自java.io.InputStream的SocketInputStream类。

ParseRequest方法在SocketInputStream类的readRequestLine方法调用后执行。

读书人网 >软件架构设计

热点推荐