Tomcat内部结构及工作原理学习
Tomcat原本是Servlet/JSP的一个调试工具,后来才发展为一个Servlet/JSP的容器。
Tomcat作为Servlet容器,负责处理客户请求,把请求传送给Servlet并把结果返回给客户。
Servlet容器与Servlet接口是由Java Servlet API定义的。
Tomcat的四种组件
每个元素都代表了一个种Tomcat组件,它们可以分成四类:
第一种:顶层类元素
比如Server和Service
第二种:连接器类元素
连接器类元素代表了介于客户与服务之间的通信接口,负责将客户的请求发送给服务器,并将服务器的响应传递给客户。
第三种:容器类元素
容器类元素代表处理客户请求并生成响应结果的组件,有三种容器类元素:Engine、Host和Context。Engine为特定的Service组件处理所有客户的请求,Host组件为特定的虚拟主机处理所有的客户请求。Context组件为特定的Web应用处理所有的客户请求。
第四种:嵌套类元素
嵌套类元素代表了可以添加到容器中的组件,比如<Logger>元素、<Valve>元素和<Realm>元素。
Server代表整个Catalina Servlet容器,它是Tomcat实例的顶层元素,其中可以包含一个或者多个Service元素。
Service元素中包含一个Engine元素,以及一个或者个多个Connector元素,这些Connector共享同一个Engine元素。
Connector元素代表和客户程序实际交互的组件,它负责接受客户的请求,以及向客户返回响应结果。
每个Service元素只能包含一个Engine元素,Engine元素可以处理在同一个Service中所有Connector元素接受到的客户请求。
一个Engine元素中可以包含多个Host元素,每个Host元素定义了一个主机,它可以包含一个或者多个Web应用。
Context是使用得最频繁的元素,每个Context元素代表了运行在虚拟机上的单个Web应用,一个Host元素中可以包含多个Context元素。
Tomcat内部工作原理
从图中可以看出来,Connector负责接受客户的请求并向客户返回响应,在同一个Service中,多个Connector共享一个Engine。同一个Engine有多个Host,同一个Host有多个Context。
这里只是简单的介绍一下Tomcat的工作原理,但是内部比这个还是要复杂得多,以后再学习咯。
Tomcat内部结构及工作原理学习的更多相关文章
- Tomcat内部结构、工作原理、工作模式和运行模式
TOMCAT的内部结构 Tomcat是一个基于组件的服务器,它的构成组件都是可配置的,其中最外层的是Catalina servlet容器,其他组件按照一定的格式要求配置在这个顶层容器中.Tomcat的 ...
- 【Tomcat】Servlet 工作原理解析
Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础.因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的 ...
- 移动端自动化测试之Appium的工作原理学习
Appium 简介 参考官网文档说明:http://appium.io/docs/en/about-appium/intro/ Appium官方文档上介绍,Appium 是一个自动化测试的开源工具,支 ...
- Tomcat内部结构及请求原理(转)
Tomcat Tomcat是一个JSP/Servlet容器.其作为Servlet容器,有三种工作模式:独立的Servlet容器.进程内的Servlet容器和进程外的Servlet容器. Tomcat的 ...
- Tomcat组成与工作原理
laosijikaichele 关注 0.2 2018.06.02 10:44 字数 5175 阅读 2798评论 0喜欢 8 原文:https://juejin.im/post/58eb5fdda ...
- tomcat web容器工作原理
Tomcat的模块结构设计的相当好,而且其Web 容器的性能相当出色.JBoss直接就使用了Tomcat的web容器,WebLogic的早期版本也是使用了Tomcat的代码.Web容器的工作过程在下面 ...
- tomcat组成以及工作原理
1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servlet Containe ...
- tomcat组成及工作原理
1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servlet containe ...
- [转] tomcat组成及工作原理
1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servlet containe ...
随机推荐
- Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)
本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...
- 闲说HeartBeat心跳包和TCP协议的KeepAlive机制
很多应用层协议都有HeartBeat机制,通常是客户端每隔一小段时间向服务器发送一个数据包,通知服务器自己仍然在线,并传输一些可能必要的数据.使用心跳包的典型协议是IM,比如QQ/MSN/飞信等协议. ...
- mongodb群集
项目目标:故障自动切换和自动修复成员节点,各个数据库之间数据完全一致.项目描述:副本集没有固定主节点,是整个集群选举得出的一个主节点,当其不工作时变 更其他节点.最小的副本集也应该具备一个pri ...
- Leetcode: Validate IP Address
In this problem, your job to write a function to check whether a input string is a valid IPv4 addres ...
- CSS中可以和不可以继承的属性
一.无继承性的属性 1.display:规定元素应该生成的框的类型 2.文本属性: vertical-align:垂直文本对齐 text-decoration:规定添加到文本的装饰 text-shad ...
- [原创]java WEB学习笔记108:Spring学习---基于配置文件的形式实现AOP
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 怎样设置才能允许外网访问MySQL
1.将本地数据库的user表的第一条记录的host数据改为%,或者用update user set host='%' where user='root'; 2.用MySQL的命令行客户端操作如下步骤: ...
- Oracle EBS 初始化用户密码(转)
---修改密码,并且将限制用户下次登录的时候(第一次登录),强制要换一个新的口令: ---此过程可以完全模拟我们在标准用户的Form里面初始化用户的密码的动作! ---最后要说明的是,这个处理过程是通 ...
- docker 介绍
docker 介绍 安装 sudo apt-get install docker.io sudo docker info 查看是否安装成功 hello world sodu docker run he ...
- 几个js函数
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...