先来介绍下tomcat 的目录文件
bin 目录:linux、windows的一些启动脚本,还有一些就是tomcat依赖的jar包,.sh是linux .bat是windows 。
conf目录:这里就是配置文件的地方了,这里面我们可以看到一些熟悉的文件,比如context.xml、server.xml、web.xml文件。
lib目录:tomcat依赖的一些jar
logs : 这个就肯定不用说了,存放日志的地方
temp: 存放一些临时文件
webapps: 这个我们就很熟悉,部署的时候 war、jar 放在里面就可以了启动就可以了。
work:这个是存运行时放编译后的class文件。
介绍完了目录结构,我们可以来看看官方文档
8.0文档地址传送门
server:这个没什么说的,tomcat服务器接口的实现,代表整个容器
Service: 服务器内部的中间组件,把多个引擎绑定在一起。
Engine: 上面提到的引擎,处理所有连接器所有的请求的管道,并且返回信息给客户端。
Host:就是我们常用域名或者服务器的ip地址与tomcat相关联,一个Engine(引擎) 包含多个Host。
Connector:这个就是客户端连接池,将tomcat连接到Apache HTTPD服务器等web服务器时使用的AJP协议的连接器。
Context:这个就是我们web项目。
说完这些还是懵逼,这些东西到底是做什么的呢?
下面我找了张图,我们结合图来说
我们可以看到,一个请求从客户端过来,首先tomcat容器肯定是要先初始化,
也就 是Server 初始化,然后就是Server的一些Listener、Resource、JNDI然后在
就Server下面的Service,Service里面的Connector。
看完上面的图我们也只是知道了tomcat 处理请求的一些流程而已,图中的一些组
件我们并不知道在哪里,还是有点懵,我们回过头去看看 各个目录里面的文件
(下面只研究conf目录)
conf目录解释
我们看到这个里面对应的是上面图中的一些组件,可是service、connetor、
Engine、Host、Executor 这些组件我们还是没有看到,再仔细看下这些组件都是包含在Server 里面的,我, 看下erver.xml的文件
上面图片中的注释我去掉了。可以看到这个里面的标签结构,图中的组件是不是都对应上了。
这个里提一下 这个web.xml文件时tomcat 默认的。
我们再看看 context.xml目录
这个里面就是最后的conttext 组件。
结合图片里的组件我们都了解完了,后面我们就去结合源码研究下tomcat 的启动流程