tomcat的架构

前提是你 提交于 2020-08-17 02:59:07

一、容器架构

tomcat容器架构

  1. server  :  tomcat服务,它下面可以有多个service (不是容器)
  2. service :一个http+port服务,它下面可以有多个engine(不是容器)
  3. engine : 表示整个Catalina servlet引擎的容器,顶级容器
  4. host :  虚拟主机,代表一个站点。可以虚拟多个主机
  5. context : 表示一个Web应用程序
  6. wrapper : 表示一个Servlet

二、连接器架构

Connector  连接器

  1. endpoint : socket管理工具,不同的io有不同的endpoint实现,如:JIoEndpoint、NioEndpoint、Nio2Endpoint
  2. Acceptor : socket连接接收器(无限循环)
  3. Handler :负责处理socket的事件,并且构建Processor,将请求传递给processor
  4. Processor : 负责http协议的解析,coyote Request、Response的构建
  5. CoyoteAdapter :将 coyote的Request、Response 转换成 servlet的Request和Response; 将请求传递给Servlet容器

三、容器内请求架构

容器内请求流程:

  1. 请求从CoyoteAdapter进入容器,容器内的执行流程是:pipeline + valve的责任链模式,找到对应容器的pipeline,然后得到pipeline的第一个valve。最后执行base valve,在base valve中找到下个容器的pipeline依次执行
  2. 请求执行完wrapper的base valve之后找到过滤器链,执行过滤器链。在执行完过滤器链之后,找到对应的servlet执行,至此,由tomcat容器进入到springmvc容器
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!