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

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

(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

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

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

相关文章:

  • 2021-09-05
  • 2021-06-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-28
  • 2021-04-16
  • 2021-04-22
  • 2022-12-23
  • 2021-08-04
  • 2022-02-07
  • 2022-12-23
相关资源
相似解决方案