参考资料:
[1]. 深入剖析Tomcat(How Tomcat works)书籍代码下载地址
- 第四章:Tomcat的默认连接器
这章介绍的是Tomcat的默认连接器,基于前一章介绍了的简单的连接器。
Tomcat中的连接器需要满足以下要求:
- 实现org.apache.catalina.Connector接口
- 创建request对象
-
创建response对象
从下面的图可以看到Connector和Container是一对一的关系,Connector跟HttpProccessor是一对多的关系。
- HTTP 1.1特性
- 持久连接
每次请求可能会有请求多个资源,多次请求可以共用一次持久连接。在HTTP1.1中会默认使用持久连接,当然也可以显示使用,方法是浏览器发送如下的请求头信息:connection: keep-alive
- 块编码
?? - 状态100的使用
客户端发送长请求之前确认服务器会接受长请求
默认的连接器跟第三章的连接器的区别之一在于socket连接之后,会在线程池中获取一个线程对象,然后将socket交给线程取处理。
默认的连接器使用如下所示,新建一个容器,赋给连接器,连接器做一些解析工作后,调用容器的invoke方法,invoke方法再去调用servlet做一些业务处理。
public final class Bootstrap {
public static void main(String[] args) {
HttpConnector connector = new HttpConnector();
SimpleContainer container = new SimpleContainer();
connector.setContainer(container);
try {
connector.initialize();
connector.start();
// make the application wait until we press any key.
System.in.read();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
网友评论