线程池的Worker线程中的run方法中的部分代码如下(请注意handler.process(socket)这一句):
注意:①调用了hanler.process(socket)来生成响应数据)
②数据生成完之后,注册WRITE事件的,代码如下:
5. Handle接口实现类通过Adpater调用Servlet容器生成响应数据
NioEndpoint类中的Handler接口定义如下:
其中process方法通过Adapter来调用Servlet Container生成返回结果。Adapter接口定义如下:
6. 小结
实现一个tomcat连接器Connector就是实现ProtocolHander接口的过程。Connector用来接收Socket Client端的请求,通过内置的线程池去调用Servlet Container生成响应结果,并将响应结果同步或异步的返回给Socket Client。在第三方应用集成tomcat作为Web容器时,一般不会动Servlet Container端的代码,那么connector的性能将是整个Web容器性能的关键。