博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tomcat--Catalina容器
阅读量:2443 次
发布时间:2019-05-10

本文共 1550 字,大约阅读时间需要 5 分钟。

Catalina容器

Tomcat是由一个由一系列可配置的组件构成的Web容器,而Catalina是Tomca的servlet容器。

Catalina是Servlet容器实现,包含了容器组件,以及安全、会话、集群、管理等Servlet容器架构的各个方面。它通过松耦合的方式继承Coyote,以完成按照请求协议进行数据读写。同时,它还包括我们的启动入口、Shell程序等。

Catalina地位

Tomcat的模块分层结构图:

在这里插入图片描述
Tomcat本质上就是一款Servlet容器,因此Catalina才是Tomcat的核心,其它模块都是为Catalina提供支持的。比如:通过Coyote模块提供链接通信,Jasper模块提供JSP引擎,Naming提供JDNI服务,Juli提供日志服务。
在这里插入图片描述

Catalina结构

Catalina的主要组件结构如下:

在这里插入图片描述

Catalina负责管理Server,而Server表示着整个服务器。Server下面有多个Service,每个服务都包含着多个连接器组件Connector(Coyote实现)和一个容器组件Container。在Tomcat启动的时候,会初始化一个Catalina的实例。

Catalina各个组件职责:

组件 职责
Catalina 负责解析Tomcat的配置文件,以此来创建服务器Server组件,并根据命令来对其进行管理
Server 服务器表示整个Catalina Servlet容器以及其它相关组件,负责组装并启动servlet引擎,Tomcat连接器。Server通过实现Lifecycle接口,提供了一种优雅的启动和关闭整个系统的方式
Service 服务是Server的内部组件,一个Server包含多个Service。它将若干个Connector组件绑定到一个Container(Engine)上
Connector 连接器,处理与客户端的通信,它负责接收客户请求,然后转给相关的容器处理,最后向客户返回响应结果
Container 容器,负责处理用户的servlet请求,并返回给web用户的模块

在这里插入图片描述

Container结构

Tomcat设计了4种容器,分别是Engine、Host、Context和Wrapper。这4种容器不是平行关系,而是父子关系。Tocmat通过一种分层架构,使得Servlet容器具有很好的灵活性。

在这里插入图片描述

容器 描述
Engine 表示整个Catalina的Servlet引擎,用来管理多个虚拟站点,一个Service最多只能有一个Engine,但是一个引擎包含多个Host
Host 代表一个虚拟主机,或者说一个站点,可以给Tomcat配置多个虚拟主机地址,而一个虚拟主机下可包含多个Context
Context 表示一个Web应用程序,一个Web应用可以包含多个Wrapper
Wrapper 表示一个Servlet,Wrapper作为容器中的最底层,不能包含子容器

也可以通过Tomcat的server.xml配置文件来加深对Tomcat容器的理解。Tomcat采用了组件化的设计,它的构成都是可配置的,其中最外层的是Server,其它组件按照一定的格式要求配置在这个顶层容器中:

在这里插入图片描述

Tomca使用组合模式来管理这些容器。具体的实现方法是,所有的容器组件都实现了Container接口,因此组合模式可以使得用户对单容器对象和组合容器对象的使用具有一致性。这里单容器对象指的是最底层的Wrapper,组合容器对象指的是Context、Host或者Engine。

在这里插入图片描述

Container接口中提供了以下方法(部分):

在这里插入图片描述

Container接口扩展了LifeCycle接口,LifeCycle接口用来同一管理各组件的生命周期。

转载地址:http://jvpqb.baihongyu.com/

你可能感兴趣的文章
书签 自动更新浏览器的书签_针对您的浏览器的英语翻译书签
查看>>
如何使用Zappy,Mac的新屏幕截图和注释工具
查看>>
火狐 dns_如何在Firefox中通过HTTPS启用DNS
查看>>
如何使用Google Chrome浏览器的新深层链接功能
查看>>
linux iso 挂载_在Linux上挂载ISO映像
查看>>
ubuntu修复eth0_在Ubuntu虚拟机中修复“无法启动eth0”
查看>>
c++命令行刷新特定行_在特定时间从命令行关闭Windows
查看>>
chrome 版本测试_如何在Google Chrome的发行版,测试版和开发版本之间切换
查看>>
使用Windows Web平台运行WordPress和其他Web应用程序
查看>>
通过这些3D Google动物和物体成为虎王
查看>>
mac关闭终端命令_如何使用终端关闭Mac
查看>>
sysinternals_批处理脚本以自动更新Sysinternals工具
查看>>
关闭windows激活提示_快速提示:关闭Windows 7中的游戏
查看>>
使用PC版Zune以全新的方式体验您的音乐
查看>>
将背景图像和主题添加到Windows 7 Media Center
查看>>
微软预览word_在Microsoft Word中更轻松地选择表列
查看>>
vs设计视图和代码视图拆分_在iPad上拆分视图和滑行之间有什么区别?
查看>>
谷歌中阻止冒泡在火狐中失效_如何在Google表格中转换货币
查看>>
wps表格日期计算天数_如何计算Google表格中两个日期之间的天数
查看>>
如何使Linux控制台更易于Linux新手使用
查看>>