TOMCAT功能及组件简介
一、功能
servlet是ORACLE公司为了让WEB应用程序与WEB服务器程序之间进行交互协作而制定的一个接口。协作示意图如下:
![](https://img2023.cnblogs.com/blog/2755468/202308/2755468-20230802154353438-352597046.png)
这个接口规定:
- WEB应用中需要被WEB服务器动态调用的程序位于Servlet接口的实现类中;
- WEB服务器可以访问一个WEB应用中所有实现了Servlet接口的类。
TOMCAT是一个能够实现Servlet规范的容器程序。TOMCAT 响应客户请求的特定Servlet流程图如下:
![](https://img2023.cnblogs.com/blog/2755468/202308/2755468-20230802154353507-1959355595.png)
- 1.客户发出访问特定Servlet的请求;
- 2.TOMCAT作为Servlet窗口解析客户请求;
- 3.TOMCAT创建ServletRequest;
- 4.TOMCAT创建ServletResponse实例;
- 5.TOMCAT调用特定Servlet类的service()方法,将Request与Response实例作为参数传递;
- 6.Servlet通过ServletRequest对象获取客户具体请求信息;
- 7.Servlet通过ServletResponse对象生成响应结果 ;
- 8.TOMCAT向客户端返回响应结果 。
二、TOMCAT组件
![](https://img2023.cnblogs.com/blog/2755468/202308/2755468-20230802154353261-929724287.png)
顶层类元素:<Server>与<Service>元素
连接器类元素:<Connector>元素,客户与服务器之间的通信接口,发送请求与响应。
容器类元素:<Engine> <Host> <Context> <Cluster>元素,负责处理客户请求并生成响应结果的组件。
嵌套类元素:可嵌入到容器中的组件。
各组件嵌套关系:
![](https://img2023.cnblogs.com/blog/2755468/202308/2755468-20230802154353502-1459657520.png)
1.<Server>元素: 代表整个Servlet容器组件,TOMCAT的顶层元素。<Server>元素保包含一个或多个<Service>元素。
2.<Service>元素: 包含一个<Engine>元素,以及一个或多个<Connector>元素,多个连接器元素共享一个元素。
3.<Engine>元素: 每个<Service>元素只能包含一个<Engine>元素。<Engine> 元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求。
4.<Host>元素: 一个<Engine>元素中可以包含多个<Host>元素。每个<Host>元素定义一个虚拟主机,它可以包含一个或多个WEB应用。
5.<Context>元素: 使用最为频繁。一个<Context>元素代表运行在<Host>虚拟主机上的单个WEB应用。一个<Host>元素可以包含多个<Context>元素。
三、工作模式
1.TOMCAT在虚拟机进程中独立运行,TOMCAT为能运行Servlet的独立的WEB服务器。
![](https://img2023.cnblogs.com/blog/2755468/202308/2755468-20230802154353426-1387326537.png)
2.TOMCAT运行在其他WEB服务器进程中,不直接与客户端通信,仅为其他WEB服务器处理客户访问Servlet的请求。
![](https://img2023.cnblogs.com/blog/2755468/202308/2755468-20230802154353465-2020352277.png)
3.TOMCAT运行在其他WEB服务器进程外。不直接与客户端通信,仅为与它集成的其他WEB服务器处理客户端Servlet请求。
![](https://img2023.cnblogs.com/blog/2755468/202308/2755468-20230802154353453-994958912.png)
参考文档:Tomcat与Java Web开发技术详解 www.javathinker.net