Catalina中有两个主要的模块:连接器和容器
StringManager类
Tomcat所采用的方法是在一个属性文件里边存储错误信息,这样,可以容易的修改这些信息。Tomcat为每个包都分配一个属性文件。
应用程序
这章的应用程序由三个模块组成:connector, startup和core。 startup模块只有一个类,Bootstrap,用来启动应用的。connector模块的类可以分为五组:
连接器和它的支撑类(HttpConnector和HttpProcessor)。
指代HTTP请求的类(HttpRequest)和它的辅助类。
指代HTTP响应的类(HttpResponse)和它的辅助类。
Facade类(HttpRequestFacade和HttpResponseFacade)。
Constant类
core模块由两个类组成:ServletProcessor和StaticResourceProcessor。
启动应用程序
Bootstrap类来启动应用程序。
连接器
HttpConnector类指代一个连接器,职责是创建一个服务器套接字用来等待前来的HTTP请求。HttpConnector类实现了java.lang.Runnable,所以它能被它自己的线程专用。当你启动应用程序,一个HttpConnector的实例被创建,并且它的run方法被执行。 注意: 你可以通过读"Working with Threads"这篇文章来提醒你自己怎样创建Java线程。 run方法包括一个while循环,用来做下面的事情:
等待HTTP请求
为每个请求创建个HttpProcessor实例
调用HttpProcessor的process方法
创建一个HttpRequest对象
创建一个HttpResponse对象
静态资源处理器和servlet处理器
运行应用程序
为默认连接器并不高效,所以已经被弃用了。例如,所有的HTTP请求头部都被解析了,即使它们没有在servlet中使用过。因此,默认连接器很慢,并且已经被Coyote所代替了。Coyote是一个更快的连接器,它的源代码可以在Apache软件基金会的网站中下载。