微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

由浅入深了解Tomcat架构

前言

文章通过b站up主鲁班大叔_007的教学视频学习,再根据自己的理解总结得出。若有错误的地方,还请各位大佬指出。

一、Tomcat核心组件

在这里插入图片描述

我们可以从一个地址中来了解tomcat的核心组件:

  • ①连接器(Connector):由协议和端口构成。
  • 站点(Host):由域名构成。
  • ③应用上下文(Context):由应用名构成
  • ④资源:由资源名称构成(静态资源或动态资源)

二、核心组件协作过程

在这里插入图片描述

  • ①浏览器首先根据端口号找到连接器,和连接器建立连接。
  • ②连接器会根据域名找到对应站点一个连接器可以访问多个站点站点也可以被多个连接器访问。连接器和站点多对多的关系。
  • 站点再根据应用上下文名称找到对应Context。一个站点可以访问多个应用,而一个应用不能被多个站点访问。站点和应用是一对多的关系。
  • ④应用在访问对应的资源。应用和资源是一对多的关系。

三、server.xml对应核心组件配置

在这里插入图片描述

  • Server:顶级组件,代表一个Tomcat实例。可以包含一个或多个Service。
  • Service:服务分组,可以连接一个或多个连接器到引擎。name:名称(自定义) Catalina(远程轰炸机)。
  • Engine:引擎,没有特殊作用,只是作为容器将Host包装起来 defaultHost:认指定站点
  • Host站点,name:域名 appBase:站点根目录 unpackWARs:是否自动解压war包 autoDeploy:是否自动部署。可以有多个站点
  • Context:应用上下文 path:访问的应用上下文名称 docBase:应用上下文包路径。

四、Tomcat请求流程

在这里插入图片描述

  • 一个组件都会有一个Pipeline结构,里面包含了n个Valve,若配置了一个Valve1,则加在最前面,若没有配置,则走认的Pipeline流程。认Pipeline流程如下图所示。

在这里插入图片描述


Valve在server.xml的配置

在这里插入图片描述

  • Valve:阀门,相当于springboot中的切面,可做拦截、日志、限流等操作,可放在任意组件下。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐