Tomcat源码(一):整体架构

由于tomcat的组件较多,处理流程比较复杂 ,这里是 由浅到深来解释tomcat的整体架构

1、首先应该大致了解下tomcat的 /conf/server.xml  配置文件:在tomcat启动的时候就会解析此文件,并初始化里面的组件

  黑框Sever :代表Tomcat的整个运行实例 端口8005  (我们默认经常请求的8080端口是运行在tomcat中的子程序)配置着tomcat的运行周期 ,包含一个或 多个Service

    红框Service:代表表示具体的服务有哪些(一个或多个)包含 多个Connector 和 一个Engine

       黄框:Connector  用于接收socket连接,并将连接封装为erquest、response请求(一个service可以包含多个connector)

       篮框:表示整个tomcat  container 容器  包含:Engine 、Host 、Context 、Wrapper 四个子容器(层级嵌套的关系)

          Engine:servlet引擎   请求到达容器的第一步,用于处理请求 (一个service只对应一个engine处理请求)

          Host:    主机和域名有关配置 (一个Engine可以对应多个Host)

          Context : 一个web工程  (一个Host可以部署多个context)

          Wrapper :对应对具体的servlet (一个context含多个Wrapper)  

            注意 :Wrapper表示web.xml中的servlet、filter、listener 是在项目中的 ,并不在server.xml配置文件中定义

 2、他们之间的关系 可以使用一个简单的图表示 

 

  

   箭头:表示依赖关系

  

  通过观察图可以发现 当Server的运行会依赖service对象运行,service的运行又依赖connector和container等容器的运行

  并且每个组件(这里说的组件在源码中都表示一个类)都 含有 start()、stop()方法 ,

    为什么 ?  在tomcat中任何一个组件都是有生命周期的 不仅有启停方法,还有init()、destory(),并且组件之间都互相依赖

           在整个从Server启动 和 关闭 期间都都维护着每个组件的运行周期。 因此为了方便管理每一个组件的生命周期

           抽象出一个 LifeCycle接口 ,在LifeCycle定义了  tomcat 组件运行周期和监听设置的规范 ,让每个组件都间接或直接的实现此接口

 

   3、 如下图 :

   根据上图 :可以知道  每个组件的生命周期都由LifeCycle 直接或间接的控制的  ,也知道了 tomcat 的整体架构

   下一篇将 结合源码 来细说Tomcat的启动过程...

     

    

 

转载于:https://www.cnblogs.com/bbdong/p/10148349.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值