解析Tomcat处理请求的类Connector<二>
??? 这次主要解析采用IO方式处理请求.在Server.xml的配置如下:
?
????? 在tomcat启动的时候,会调用Connector类的Start()方法,根据以上配置,Connector的start()方法里会调用Http11Protocol类的start()方法,如下:
?
?? Http11Protocol类的start()方法又会调用JIoEndpoint类的start()方法,如下:
?? 该方法主要初始化了接受Socket的线程Acceptor类,处理Socket的线程池WorkerStack.Acceptor类的run()方法如下:
????
if (processor == null) { processor = createProcessor(); } if (processor instanceof ActionHook) { ((ActionHook) processor).action(ActionCode.ACTION_START, null); } if (proto.isSSLEnabled() && (proto.sslImplementation != null)) { processor.setSSLSupport (proto.sslImplementation.getSSLSupport(socket)); } else { processor.setSSLSupport(null); } //socket交由Http11Processor的process()方法处理 processor.process(socket); return false;? processor.process(socket)负责解析http协议并返回结果内容
??? ?