美文网首页
tomcat源码分析(一)

tomcat源码分析(一)

作者: allenhai | 来源:发表于2017-04-19 10:07 被阅读0次

    tomcat代码看似很庞大,但从结构上看却很清晰和简单,它主要由一堆组件组成,如Server、Service、Connector等,并基于JMX管理这些组件,另外实现以上接口的组件也实现了代表生存期的接口Lifecycle,使其组件履行固定的生存期,在其整个生存期的过程中通过事件侦听LifecycleEvent实现扩展。Tomcat的核心类图如下所示:

    Catalina:开始/关闭shell脚本交互的主类,要研究启动和关闭的过程

    Server:是整个Tomcat组件的容器,包含一个或多个Service

    Service:Service是包含Connector和Container的集合,Service用适当的Connector接收用户的请求,再发给相应的Container来处理。

    Connector:实现某一协议的连接器,如默认的有实现HTTP、HTTPS、AJP协议的。

    Container:可以理解为处理某类型请求的容器,处理的方式一般为把处理请求的处理器包装为Valve对象,并按一定顺序放入类型为Pipeline的管道里。Container有多种子类型:Engine、Host、Context和Wrapper,这几种类型Container依次包含,处理不同粒度的请求

    Engine:Engine包含Host和Context,接到请求后仍给相应的Host在相应的Context里处理。

    Host:就是我们所理解的虚拟主机。

    Context:就是我们所部属的具体Web应用的上下文,每个请求都在是相应的上下文里处理的。

    Wrapper:Wrapper是针对每个Servlet的Container,每个Servlet都有相应的Wrapper来管理。

    分析完核心类后,看下Tomcat启动的过程,Tomcat启动时序图如下:

    相关文章

      网友评论

          本文标题:tomcat源码分析(一)

          本文链接:https://www.haomeiwen.com/subject/fyyczttx.html