Tomcat详解

1       Server

1.1          In the Tomcat world, a Server represents the whole container. Tomcat provides a default implementation of the Server interface., and this is rarely customized by users.

1.2          在tomcat的世界里,一个server代表整个容器.Tomcat提供了一个默认的org.apache.catalina接口的实现.用户很少修改这个默认的实现

 

2       Service

2.1          A Service is an intermediate component which lives inside a Server and ties one or more Connectors to exactly one Engine. The Service element is rarely customized by users, as the default implementation is simple and sufficient: Service interface.

2.2          一个Service是一个中间件,存在在一个Server的内部,将一个或者多个Connectors绑定到一个特定的Engine上.默认的实现已经足够用了.是org.apache.catalina.Service接口的一个实现.

A "Service" is a collection of one or more "Connectors" that share a single "Container"

一个Service是一个或者多个Connectors的集合,这些个Connectors共享一个容器。

3       Engine

3.1          An Engine represents request processing pipeline for a specific Service. As a Service may have multiple Connectors, the Engine received and processes all requests from these connectors, handing the response back to the appropriate connector for transmission to the client. The Engine interface may be implemented to supply custom Engines, though this is uncommon.

3.2          一个Engine代表一个特定的Service的请求处理的管道.因为一个Service可以有多个Connectors,Engine接收并且处理从这些Connectors过来的所有的请求.并且将结果送回合适的connector并发送给客户端.

3.3          可以实现org.apache.catalina.Interface Engine接口来提供定制的Engines,虽然一般不需要这样做.

3.4          Note that the Engine may be used for Tomcat server clustering via the jvmRoute parameter. Read the Clustering documentation for more information.

4       Host

4.1          A Host is an association of a network name, e.g. www.yourcompany.com, to the Tomcat server. An Engine may contain multiple hosts, and the Host element also supports network aliases such as yourcompany.com and abc.yourcompany.com. Users rarely create custom Hosts because the StandardHost implementation provides significant additional functionality.

4.2          一个Host将一个域名和tomcat联系起来.一个Engine可以包含多个hosts,并且一个Host还支持网络别名(例如yourcompany.com 或者 abc.yourcompany.com).用户很少去实现一个org.apache.catalina.Interface Host接口,因为org.apache.catalina.core.StandardHost这个默认的实现已经提供了丰富的扩展功能了

 

5       Connector

5.1          A Connector handles communications with the client. There are multiple connectors available with Tomcat, all of which implement the Connector interface. These include the Coyote connector which is used for most HTTP traffic, especially when running Tomcat as a standalone server, and the JK2 connector which implements the AJP procotol used when connecting Tomcat to an Apache HTTPD server. Creating a customized connector is a significant effort.

5.2          一个Connector处理和客户端的通信.tomcat有多个connectors.这些个connectors都实现了Connector接口.

5.3          创建一个定制的connector是非常复杂的.

5.4          AJP是为Tomcat与HTTP服务器之间通信而定制的协议,能提供较高的通信速度和效率。在配置Tomcat与HTTP服务器集成中,读者可以不必关心AJP协议的细节。关于AJP的知识也可以参考网址:

5.5          Tomcat最主要的功能是提供Servlet/JSP容器,尽管它也可以作为独立的Java Web服务器,它在对静态资源(如HTML文件或图像文件)的处理速度,以及提供的Web服务器管理功能方面都不如其他专业的HTTP服务器,如IIS和Apache服务器。

5.6          因此在实际应用中,常常把Tomcat与其他HTTP服务器集成。对于不支持Servlet/JSP的HTTP服务器,可以通过Tomcat服务器来运行Servlet/JSP组件。

5.7          当Tomcat与其他HTTP服务器集成时,Tomcat服务器的工作模式通常为进程外的Servlet容器,Tomcat服务器与其他HTTP服务器之间通过专门的插件来通信。

5.8          Tomcat与HTTP服务器集成的原理:Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户。默认情况下,Tomcat在server.xml中配置了两种连接器:

l  <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

l  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

5.9          第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。

5.10       第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。

5.11       Tomcat提供了专门的JK插件来负责Tomcat和HTTP服务器的通信。应该把JK插件安置在对方的HTTP服务器上。

5.12       对于不同的HTTP服务器,Tomcat提供了不同的JK插件的实现模块

l  与Windows下的Apache HTTP服务器集成:mod_jk_2.0.46.dll

l  与Linux(RedHet)下的Apache HTTP服务器集成:mod_jk.so-ap2.0.46-rh72..46-rh72

l  与IIS服务器集成:isapi_redirect.dll

5.13       AJP是为Tomcat与HTTP服务器之间通信而定制的协议,能提供较高的通信速度和效率。

5.14       关于AJP的知识也可以参考网址:
http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk2/doc/common/AJPv13.html

5.15       如果两个Tomcat服务器都在同一台机器上运行,则至少应该对其中一个Tomcat服务器的以上3个端口号都进行修改。

6       Context

6.1          A Context represents a web application. A Host may contain multiple contexts, each with a unique path. The Context interface may be implemented to create custom Contexts, but this is rarely the case because the StandardContext provides significant additional functionality.

6.2          一个Context代表一个web应用程序。一个Host可以包含多个contexts。每一个有不同的访问地址。

6.3          可以实现Context接口来创建自己的Contexts。但很少这样用,因为StandardContext已经提供了丰富的额外的功能

 

转载于:https://www.cnblogs.com/gxpblogs/archive/2013/05/08/3067968.html

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

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

相关文章

$.ajax datatype默认是什么类型,理解jquery ajax中的datatype属性选项值

jquery中ajax的dataType属性用于指定服务器返回的数据类型&#xff0c;如果不指定&#xff0c;jQuery 将自动根据HTTP包MIME信息来智能判断&#xff0c;如果datatype选项不填写的话&#xff0c;会将返回的数据当成字符串处理。jquery中ajax的dataType属性用于指定服务器返回的数…

capslock键英语怎么读_刚开始读英文原版书该怎么做?商务英语专业有前途吗?...

是的&#xff0c;看我的朋友圈也能学英文#26从最近的朋友圈和微博中选了一些内容&#xff0c;分享给大家。1. 如何开始读英文原版书&#xff1f;关于读英文原版书&#xff0c;我给出一个简单粗暴的开始和进阶方案。启动方案&#xff1a;首先找一本你特别感兴趣的书&#xff0c;…

【12图】你管这破玩意叫Pulsar

这两年pulsar发展比较快&#xff0c;有好多大公司引入了pulsar&#xff0c;相关的资料和课程也多了&#xff0c;今天一起来了解一下pulsar这款中间件。下图是几款消息中间件的历史&#xff1a;2012年pulsar在Yahoo内部开发&#xff0c;2016年开源并捐献给Apache&#xff0c;201…

每日一笑 | 为什么英语老师让我们养成背单词的习惯?

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图片来源于网络&#xff0c;侵权删&#xff09;

把C#.NET程序移植到DB2上的经验浅谈(C#连接DB2可以用IBM.Data.DB2.dll)

感谢博客园不再封杀&#xff0c;差点儿搬家的念头都产生了&#xff0c;博客园还是有大胸怀&#xff0c;继续留在博客园写口水文应该没错&#xff0c;娱乐自己、娱乐大家&#xff0c;给枯燥的编程生活增加一点儿笑料&#xff0c;也给大家充当个开心果&#xff0c;让大家高兴一下…

postgis数据库优化_国内首个 Serverless 数据库来了,技术架构全揭秘!

头图 | CSDN 下载自东方 IC本文为企业投稿省却成本&#xff0c;缩短产品上市时间&#xff0c;减少运维与开发团队之间的摩擦是 Serverless 最核心的所在&#xff0c;从 AWS 发布「Lambda」让「Serverless」越来越多地为开发者所知到今天&#xff0c;已经过去了 6 年的时光&…

hdu 2579 BFS

http://acm.hdu.edu.cn/showproblem.php?pid2579 题目大意&#xff1a;给定 r * c 的迷宫&#xff0c;还有一个整数 k 。迷宫中“.”表示可以走&#xff0c;“#”表示墙&#xff0c;当时间为k的倍数时&#xff0c;这些墙会消失。求从起点“Y”到终点“G”的最短时间。&#xf…

丰富自己, 比取悦他人更有力量

如果有那么一天&#xff0c;你不再记得&#xff0c;我也不再记得&#xff0c;时光一定会代替我们记得。丰富自己&#xff0c; 比取悦他人更有力量&#xff01;下面给大家推荐几个优秀公众号它们每天更新有态度、有干货的原创文字坚持看一段时间 颜值和人生都不一样了【关注方式…

WPF Grid动态显示或隐藏一列的一种方法

项目中有一个需求&#xff0c;需要根据用户的设置动态显示一列&#xff0c;研究了一波后&#xff0c;发现&#xff0c;Grid并没有这个功能&#xff0c;于是通过绑定宽度 的方法&#xff0c;实现的需求。。思路&#xff1a;将需要隐藏的列宽度 绑定到一个属性上&#xff0c;隐藏…

.Net Core with 微服务 - Seq 日志聚合

上一次我们介绍并演示了如果使用 Consul 做为我们微服务的注册中心&#xff0c;来实现服务的注册与发现。那么本次我们讲会演示如何做日志聚合。日志聚合比较常用的有 ELK 等&#xff0c;但是这次我想要介绍的是一款比较小众的日志聚合工具 - Seq 。日志聚合日志是我们写程序离…

苹果白屏一直显示苹果_最新消息显示:苹果还要发新品

距离2020年结束已经进入了倒计时阶段&#xff0c;但最新消息显示苹果可能还会在这个最后的时间节点上召开一场新品发布会。今日&#xff0c;有外媒援引一份苹果内部备忘录报道&#xff0c;称苹果通过内部备忘录向服务提供商发送通知&#xff0c;计划在美国太平洋标准时间 12月8…

“探月计划”来袭,美国米德天文望远镜助孩子观月赏月

▲数据汪特别推荐点击上图进入玩酷屋孩子对于未知的世界充满了好奇&#xff0c;尤其是对于月亮&#xff0c;总是有问不完的问题。例如月亮上是怎么样的&#xff1f;怎么很多人说十五的月亮十六圆&#xff1f;月亮有动物吗&#xff1f;不是说有月兔吗&#xff1f;月亮怎么有时是…

[转]让Linux的tty界面支持中文

fedora下&#xff1a; sudo yum install zhcon 然后切换到tty下面&#xff0c;zhcon --utf8 就可以输入中文了 ubuntu据说分辨率还要调整。fedora下发现不用&#xff5e; 另&#xff1a;tty下上网的方式&#xff0c;可以这样: lynx baidu.com

为什么async/await方法不能有lock或Monitor

相信有不少朋友知道async/await有lock语法的情况一般都会编译错误&#xff0c;这个时候可以通过Monitor来解决编译错误的问题&#xff1b;虽然这样解决的编译错误但本质问题还是没有解决。其实并不是async/await方法不能用lock或Monitor&#xff0c;而是在lock或Monitor的作用域…

每日一笑 | 程序员和产品经理打架了,怎么办?

全世界只有3.14 % 的人关注了数据与算法之美&#xff08;图片来源于网络&#xff0c;侵权删&#xff09;

法斗几个月长鼻筋_聊一下足底筋膜炎治疗经历

几年前&#xff0c;对看到这个词不要觉得可怕&#xff0c;真的是被折磨了好几年。跟大多数病友的故事情节差不多。体重大概180吧&#xff0c;想跑步减肥&#xff0c;然后就开始了貌似很励志的开始。刚开始基本上慢跑&#xff0c;每天都跑&#xff0c;身体也吃得消&#xff0c;但…

新建项目EasyUiAutotest,安装Appium-Python-Client

一、前置说明 Appium-Python-Client 是 Appium 的 Python 客户端库&#xff0c;它提供了一系列的类和方法&#xff0c;用于与 Appium 服务器进行通信&#xff0c;并执行各种移动应用测试操作&#xff0c;包括启动应用、模拟用户输入、点击等操作。 二、操作步骤 1. 启动Pych…

VS Code + ML.NET 玩转交互式机器学习

在上一篇文章中&#xff0c;我们介绍了 .NET Interactive Notbook&#xff0c;可以进行代码实时运行和交互式展示。这对于ML.NET来说非常棒&#xff0c;可以运用到许多场景&#xff0c;比如数据探索、绘制数据图表、编制教学课件等。下面&#xff0c;我们就用出租车费预测&…

ts定义数组类型_ts基本数据类型

typescript基础数据类型布尔值 示例代码最基本的数据类型就是简单的true/false值&#xff0c;在JavaScript和TypeScript里叫做boolean(其它语言中也一样)。let a: boolean trueconsole.log(a)let b: boolean falseconsole.log(b)let c: booleanconsole.log(c)执行结果truefal…

神还原女神照片!GAN为百年旧照上色

全世界只有3.14 % 的人关注了数据与算法之美如何把女神的黑白照片变成彩照&#xff1f;今日&#xff0c;数据汪发现新加坡 GovTech 数据科学与人工智能部门在 Medium 上介绍了一个为百年旧照上色的项目。这个项目名为 Colourise.sg&#xff0c;最初是该团队&#xff08;成员包括…