Tomcat7.0.42源码研读概览


             好奇于Servlet容器的运行机制,一直想着读读Tomcat源代码,一下内容仅作为自己的读书笔记。(从GitHub上下载Tomcat7.0.42源码编译)


            研读Tomcat源码,想要搞清楚以下几个关键点:

                           1、Tomcat是如何监听HTTP请求,并解析HTTP请求报文的

                           2、解析完HTTP请求参数,在哪个地方封装成org.apache.coyote.Request对象

                           3、Tomcat解析完HTTP请求报文,是如何交由具体的Servlet去处理具体的业务逻辑的

                           4、Tomcat的session容器是怎样的

                           5、Tomcat的类加载器是如何做到多个Web应用资源隔离的

 

                  

            Tomcat整体架构就如conf/server.xml文件定义的,如下:

Tomcat7.0.42源码研读概览_第1张图片


              顶层是一个Server ,再往下看


Tomcat7.0.42源码研读概览_第2张图片


             接着看看Service下面的元素,如下:

             

             Tomcat7.0.42源码研读概览_第3张图片


            总体来讲,Tomcat的架构是实现协议监听与业务处理分离的思想,方便解耦

           Tomcat7.0.42源码研读概览_第4张图片



           Tomcat由Coyote网络框架和Container处理容器组成,下面先研究Coyote网络处理流程。


           Tomcat的配置文件server.xml默认支持HTTP协议、AJP协议

             


            


           Tomcat由启动类Bootstrap.java 、Catalina.java启


          Tomcat启动的时候,会根据server.xml配置文件配置的协议HTTP/1.1获取相应的协议处理类。Tomcat8.0.0默认的HTTP/1.1协议处理类是Http11NioProtocol.java ,也就是Tomcat8.0.0默认采用NIO方式处理Socket连接

 

            


           

                       


     

你可能感兴趣的:(Tomcat7.0.42源码研读概览)