Tomcat系统架构

Tomcat系统架构_第1张图片
Server
  控制着Tomcat的整个生命周期,Server作为Service的载体,给Service提供了一个生存环境

Service
  Service值是作为Connector和Container的载体在外面多包了一层,把它们组装在一起,向外面提供服务。一个Service可以设置多个Connector,但只能有一个Container。Service中所有组件的声明周期都通过LifeCycle接口来控制。

Connector
  负责接受浏览器发过来的TCP连接请求,解析Socket并创建一个Request和Response对象分别用于和请求端交换数据。会产生一个线程来处理这个请求并把产生的Request和Reponse对象传给处理这个请求的线程。这个线程的运行是Container组件要做的事情。

Container
  Container是容器的父接口,所有子容器都必须实现这个接口。由4个子容器组件构成:Engine、Host、Context、Wrapper,这个四个组件是父子关系,如上右图所示。值得注意的是,Tomcat的Container设置就是责任链模式,从Engine到Host再到Context最后到Wrapper都通过一个链传递请求。

  • Engine:定义了一些基本的关联关系。标准实现类是StandardEngine,Engine没有父容器,子容器只能是Host类型
  • Host:Engine的子容器,一个Host代表一个虚拟主机,这个虚拟主机用于运行多个应用,它负责安装和展开这些应用,并且标识这个应用以便能够区分它们。子容器是Context
  • Context:代表Servlet的Context,它具备了Servlet运行的基本环境,理论上只要有Context就能运行Servlet了。简单的Tomcat可以没有Engine和Host。
  • Wrapper:代表一个Servlet,负责管理一个Servlet,包括Servlet的装载、初始化、执行以及资源回收。Wrapper是最底层的容器,没有子容器了。

你可能感兴趣的:(深入分析java,web技术内幕笔记)