How Tomcat works 13:Host容器和Engine容器

一、 Host
    容器Host比较简单,主要配置hostname,别名,添加默认和包含的context,以及是否允许自动部署等功能。
    (1)Host总体设计架构

   

(2)Request的处理流程
   A. 一个Request进入host后首先会使用pipleline责任链依次调用配置好的valves
   B. 在StandardValve内部standardHostMapper中获取匹配URI获取相应的context对象
   C. 获取context的classloader作为当前的加载类,获取context的mananger获取对应session
   C.调用context.invoke(),处理request和response

(3)Host的必要性
   后续context的配置使用contextConfig,而后去读取contants.applicationWebXml(/WEB-INF/web.xml)生成fullPath = context.getName()+path; String hostName = context.getParent().getName()

二、Engine容器
(1)总体设计架构
   Engine是Host的父容器,可以配置多个hostName,同时可以设置获取service、context

(2)Request请求流程:
   A. request进入Engine后调用pipeline中的standardEngineValve
   B. 会校验request是否是http请求,校验request协议是否1.1且有servername
   C. 调用engine.map()匹配uri获取对应的host
   D. 调用host.invoke(req, resp)
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值