Tomcat架构与原理

Tomcat架构与原理

架构图

1562333-20190905174023376-572039378.png

原理

①、用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得。
②、Connector把该请求交给它所在的Service的Engine来处理,并等待Engine的回应。
③、Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host。
④、Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhost的Host获得请求/test/index.jsp,匹配它所拥有的所有的Context。Host匹配到路径为/test的Context(如果匹配不到就把该请求交给路径名为“ ”的Context去处理)。
⑤、path=“/test”的Context获得请求/index.jsp,在它的mapping table中寻找出对应的Servlet。Context匹配到URL PATTERN为*.jsp的Servlet,对应于JspServlet类。
⑥、构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost().执行业务逻辑、数据存储等程序。
⑦、Context把执行完之后的HttpServletResponse对象返回给Host。
⑧、Host把HttpServletResponse对象返回给Engine。
⑨、Engine把HttpServletResponse对象返回Connector。
⑩、Connector把HttpServletResponse对象返回给客户Browser。

我们将 Tomcat 中 Connector、Container 作为一个整体比作一对情侣的话,Connector 主要负责对外交流,可以比作为 Boy,Container 主要处理 Connector 接受的请求,主要是处理内部事务,可以比作为 Girl。那么这个 Service 就是连接这对男女的结婚证了。是 Service 将它们连接在一起,共同组成一个家庭。当然要组成一个家庭还要很多其它的元素。

说白了,Service 只是在 Connector 和 Container 外面多包一层,把它们组装在一起,向外面提供服务,一个 Service 可以设置多个 Connector,但是只能有一个 Container 容器。

转载于:https://www.cnblogs.com/Smbands/p/11468600.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[html] 微软雅黑是有版权的,在页面中使用font-family:Microsoft YaHei会不会有版权问题呢?

[html] 微软雅黑是有版权的,在页面中使用font-family:Microsoft YaHei会不会有版权问题呢? font-family: Microsoft YaHei的写法,个人、商用都不会有版权问题,可以放心使用!但是如果是通过font-face引用微软雅黑的话&…

aodv路由协议分析

1 AODV 报文格式 AODV 有三种基本的协议报文类型:RREQ 报文、RREP 报文和RRER 报文。 1.1 RREQ 报文 a. 对RREQ 的处理 接收到RREQ 的结点做如下处理: (1)创建一个表项,先不分配有效序列号,用于记录反向路径…

rfid射频前端的主要组成部分有_第4章 RFID的射频前端(simple).ppt

(1)阅读器天线电路 * Microchip 公司的13.56 MHz应答器(无源射频卡)MCRF355和MCRF360芯片的天线电路 无源应答器的天线电路多采用并联谐振回路 * 并联谐振回路 在研究并联谐振回路时,采用恒流源(信号源内阻很大)分析比较方便。 并联谐振 谐振条件 - 实际中线圈的电…

c语言转换为python语言_python和c语言

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! c语言是编译型语言,经过编译后,生成机器码,然后再运行,执行速…

Tomcat安装与使用

Tomcat安装与使用 Tomcat是JAVA语言编写的,需要jdk环境。jdk从Oracle官网下载,不过要求登录后才能下载。 Tomcat的主配置文件:安装路径下的 conf/server.xml。 Tomcat默认监听8080端口。 下载&安装jdk #卸载或升级自带的java环境。 #查找…

COJ1196(Staginner 去爬山)

题目大意:给定一个n*m的只含0和1的矩阵,从矩阵的最后一行中的某个1出发,每步只能走到相邻的且是1的格子中,求能达到的最大高度(最小行数)。 这题直接DFS即可,复杂度为O(N*M)。 View Code 1 #in…

[html] 对一个元素设置浮动后,它的特征是什么?

[html] 对一个元素设置浮动后,它的特征是什么? 浮动元素脱离正常的文档流浮动元素后的内联元素,将围绕在浮动元素周围浮动元素会造成父元素的高度坍塌个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但…

python网格划分_在python中创建一个2d网格

我真的很喜欢编程……但这是我的问题:我不能发布图像,但我想要的图是一个“冠”(两个半径为a的同心圆)我的意思是,在数学上讲这很容易定义,但我怎么能用python程序呢?我想到了这样的事情:def Fm1(X, Y):r r sqrt(1.*X**21.*Y**2)cos 1.*X/r…

python 三维地球_用python生成地球运动的动态模拟动态图

python作为一门简单易学且应用范围极广的语言有着其他语言无法比拟的优势,通过python可以实现各种各样的功能,例如我们可以利用python matplotlib的绘图库实现各种动态模拟仿真,在科学实验中有着极大的应用价值。下列是通过python实现地球公转…

xmlhttprequest level 2

http://caniuse.com/xhr2转载于:https://www.cnblogs.com/fullhouse/archive/2012/04/24/2468892.html

tomcat常用功能

修改端口号 1024-655365 之间取端口号 Tomcat有3个重要端口&#xff1a; 默认访问端口&#xff1a;8080 默认监听关闭tomcat的端口&#xff1a;8005 默认AJP访问端口&#xff1a;8009 vim tomcat/conf/server.xml<Server port"8005" shutdown"SHUTDOWN&quo…

[html] 可以给内联元素设置宽和高吗?为什么?

[html] 可以给内联元素设置宽和高吗&#xff1f;为什么&#xff1f; 1.正常情况下不能设置宽高(可替换内容元素除外例如img)2.元素被浮动&#xff0c;绝对定位&#xff0c;固定定位后&#xff0c;可以设置宽高3.display:block,display:inline-block等后可以设置宽高4.内联元素的…

cve20190708补丁的kb名称_微软KB4495667补丁(CVE 2019-0708补丁)V1.1 官方版

微软KB4495667补丁(CVE 2019-0708补丁)是一款很优秀好用的微软升级补丁工具。这款微软KB4495667补丁是针对2019年新发现的Windows系统漏洞CVE-2019-0708的Windows修补程序。此漏洞很可能被新的勒索软件利用&#xff0c;但您只需下载此修补程序即可安装它。欢迎有需要的朋友来下…

enterFrame是什么意思?

影片剪辑脚本和按钮的脚本类似&#xff0c;它们都使用事件处理函数&#xff0c;与按钮的on关键字不同&#xff0c;影片剪辑使用 onClipEvent关键字。当某种影片剪辑事件发生时&#xff0c;就会触发相应的事件处理函数。影片剪辑最重要的两种事件是load和enterFrame&#xff0c;…

python网站模板下载_Python画图模板大全:从此画图不用愁

1、matplotlib具体参数介绍&#xff1a; 在介绍Python画图模板之前&#xff0c;先买个和大家卖个官司&#xff0c;首先介绍一下Python画图常用库matplotlib的参数&#xff0c;如果只介绍模板&#xff0c;如果你想改一些参数&#xff0c;首先要知道各个参数的含义&#xff0c;那…

tomcat多域名访问

多域名访问 配置虚拟主机&#xff0c;提高资源利用率。 tomcat的server.xml文件也可以配置多个虚拟主机&#xff0c;基于端口可以通过增加service节点实现&#xff0c;基于域名则可以同过增加host节点实现 基于域名的虚拟机 #编辑server.xml文件&#xff0c;在Engine段下添加Ho…

[html] 如何解决input在Firefox和Chrome中高度不一致的问题?

[html] 如何解决input在Firefox和Chrome中高度不一致的问题&#xff1f; 原因是firefox的input的border-width padding 受win10系统的文本大小设置影响设置一样的样式input{box-sizing:border-box;height:20px;}将win10 系统的文本大小设置为100%个人简介 我是歌谣&#xff0c…

工业机器人工具中心点标定的意义_如何理解工业机器人的工具中心点

工业现场的机器人实际上是有多个轴的机械手臂。要想让机器人完成指定的生产任务&#xff0c;通常需要在机器人的末端固定一个工具&#xff0c;比如焊接机器人的焊枪、涂胶机器人的胶枪、搬运机器人的夹具等。由于各工具的大小、形状各不相同&#xff0c;这样就产生一个问题&…

学习:重写hashCode()方法的必要性

当一个类有可能会和其他类发生比较的时候&#xff0c;我们会重写equals方法&#xff0c;但大多数情况下&#xff0c;都忽略了重写hashCode方法。 这里说一下重写hashCode的必要性。 当我们使用HashSet或者HashMap的时候&#xff0c;在比对value|key是否存在时&#xff0c;会调用…

python利用缩进写模块_Python之缩进块

MySQL主从复制、半同步复制和主主复制概述 http://www.cnblogs.com/zping/p/5275531.html 17 任务调度相关类综述——Live555源码阅读&lpar;一&rpar;任务调度相关类 这是Live555源码阅读的第二部分,包括了任务调度相关的三个类.任务调度是Live555源码中很重要的部分. 本…