java web--Tomcat简介

article/2025/6/10 4:47:38

javaweb--Tomcat简介

  • 1.Tomcat概述
  • 2.Tomcat作为Servlet容器的基本功能
  • 3.Tomcat的组成结构
  • 4.Tomcat的工作模式


本文主要内容为Tomcat简介


1.Tomcat概述

Tomcat是一个优秀的servlet容器。Tomcat除了能够充当运行servlet的容器,还提供了作为Web服务器的一些实用功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀。

2.Tomcat作为Servlet容器的基本功能

Servlet,顾名思义,是一种运行在服务器上的小插件。Servlet 最常见的用途是扩展Web 服务器的功能,它可作为非常安全的、可移植的、易于使用的 CGI替代品。

Servlet 具有以下特点∶
(1)提供了可被服务器动态加载并执行的程序代码,为来自客户的请求提供相应服务。
(2)Servlet 完全用 Java 语言编写,因此要求运行 Servlet 的服务器必须支持 Java语言。
(3)Servlet 完全在服务器端运行,因此它的运行不依赖于浏览器。不管浏览器是否支持Java 语言,都能请求访问服务器端的 Servlet。
servlet工作流程
如图所示,Tomcat 作为运行 Servlet 的容器,其基本功能是负责接收和解析来自客户的请求,同时把客户的请求传送给相应的 Servlet,并把 Servlet 的响应结果返回给客户。

Servlet 规范规定,Servlet 容器响应客户请求访问特定 Servlet 的流程如下∶
(1)客户发出要求访问特定 Servlet 的请求。
(2)Servlet容器接收到客户请求,对其解析。
(3)Servlet容器创建一个 ServletRequest 对象,在 ServletRequest 对象中包含了客户请求信息及其他关于客户的信息,如请求头、请求正文,以及客户机的IP地址等。
(4)Servlet容器创建一个 ServletResponse 对象。
(5)Servlet 容器调用客户所请求的 Servlet 的 service()服务方法,并且把ServletRequest 对象和 ServletResponse 对象作为参数传给该服务方法。
(6)Servlet 从 ServletRequest 对象中可获取客户的请求信息。
(7)Servlet 利用 ServletResponse 对象来生成响应结果。
(8)Servlet 容器把 Servlet 生成的响应结果发送给客户。
在这里插入图片描述

3.Tomcat的组成结构

Tomcat本身由一系列可配置的组件构成,其核心组件是servlet容器组件,它是所有其他Tomcat组件的顶层容器。每个Tomcat组件在server.xml文件中对应一种配置元素,以下代码以XML的形式展示了各种Tomcat组件之间的关系

<Server><Service><Connector/><Engine><Host><Context></Context></Host></Engine></Service>
</Server>

在以上XML 代码中,每个元素都代表一种Tomcat组件,这些元素可分为以下4类。

(1)顶层类元素∶包括<Server>元素和<Service>元素,它们位于整个配置文件的
顶层。
(2)连接器类元素∶为<Connector>元素,代表介于客户与服务器之间的通信接口,负责将客户的请求发送给服务器,并将服务器的响应结果返回给客户。
(3)容器类元素∶代表处理客户请求并生成响应结果的组件,有4种容器类元素,分别为<Engine><Host><Context ><Cluster>元素。Engine 组件为特定的Service 组件处理所有客户请求,Host组件为特定的虚拟主机处理所有客户请求,Context 组件为特定的Web 应用处理所有客户请求。Cluster 组件负责为Tomcat 集群系统进行会话复制、Context 组件的属性的复制,以及集群范围内WAR文件的发布。
(4)嵌套类元素∶代表可以嵌入到容器中的组件,如<Valve>元素和<Realm>元素等,这些元素的作用将在后面的章节作介绍。

下面,再对一些基本的 Tomcat 元素进行介绍:

<Server>元素∶代表整个 Servlet 容器组件,是 Tomcat 的顶层元素。在<Server>元素中可包含一个或多个<Service>元素。
<Service>元素∶包含一个<Engine>元素,以及一个或多个<Connector>元素,这些<Connector>元素共享同一个<Engine>元素。
<Connector>元素∶代表和客户程序实际交互的组件,负责接收客户请求,以及向客户返回响应结果。
<Engine>元素∶每个<Service>元素只能包含一个<Engine>元素。<Engine>元素处理在同一个<Service>中所有<Connector>元素接收到的客户请求。
<Host>元素∶在一个<Engine>元素中可以包含多个<Host>元素。每个<Host>元素定义了一个虚拟主机,它可以包含一个或多个Web 应用。
<Context>元素∶使用最频繁的元素。每个<Context元素代表了运行在虚拟主机上的单个web应用。一个<Host>元素中可以包含多个<Context>元素。

Tomcat 各个组件之间的嵌套关系如图所示。
嵌套关系
图表明,Connector组件负责接收客户的请求并向客户返回响应结果;在同一个Service组件中,多个Connector组件共享同一个Engine组件;在同一个Engine组件中可以包含多个Host 组件;在同一个Host 组件中可以包含多个Context组件。

当 Tomcat 安装好以后,在它的 server.xml 配置文件中已经配置了<Server><Service><Connector><Engine><Host>等组件∶
<Server port="8005" shutdon="SHUTDOMN"><service name="Catalina-><Connectorport="8080"protocol="HTTP/1.1"connectionrimeout="20000"redirectPort="8443" /><Connector port="8009" protocol="AJP/1.3"redirectPort=·8443:/><Engine name=*Catalina" dofaultHost="1ocalhoet"><Host namo-"1ocalhost" appBase-"webapps"unpackWARs="true" autoDeploy="truexmlValidation="false xmlNamespaceAware-"false"></Host></Engine></Service>
</Server>

从以上代码可以看出,Tomcat 自带了一个名为"Catalina"的Engine组件,它的默认虚拟主机为 localhost。

4.Tomcat的工作模式

Tomcat 作为Servlet容器,有以下3种工作模式。
(1)独立的 Servlet容器
Tomcat 作为独立的 Web 服务器来单独运行,Servlet 容器组件作为 Web 服务器中的一部分而存在,这是 Tomcat 的默认工作模式。
在这里插入图片描述

在这种模式下,Tomcat 是一个独立运行的 Java程序。和运行其他 Java 程序一样,运行Tomcat 需要启动一个Java虚拟机进程,由该进程来运行 Tomcat。
(2)其他 Web 服务器进程内的Servlet 容器
在这种模式下,Tomcat 分为 Web 服务器插件和 Servlet 容器组件两部分。
在这里插入图片描述

如图所示,Web 服务器插件在其他 Web 服务器进程的内部地址空间启动一个Java 虚拟机,Servlet 容器组件在此 Java 虚拟机中运行。如有客户端发出调用 Servlet 的请求,Web 服务器插件获得对此请求的控制并将它转发(使用JNI通信机制)给 Servlet 容器组件。
(3)其他Web 服务器进程外的 Servlet 容器
在这种模式下,Tomcat 分为 Web 服务器插件和 Servlet 容器组件两部分。
在这里插入图片描述
如图所示,Web 服务器插件在其他 Web 服务器的外部地址空间启动一个Java 虚拟机进程,Servlet 容器组件在此 Java 虚拟机中运行。如有客户端发出调用 Servlet 的请求,Web 服务器插件获得对此请求的控制并将它转发(采用IPC通信机制)给 Servlet 容器组件。
进程外 Servlet 容器对客户请求的响应速度不如进程内 Servlet容器,但进程外容器具有更好的伸缩性和稳定性。


明天会更好


http://chatgpt.dhexx.cn/article/p70vDRYn.shtml

相关文章

tomcat java home配置_Tomcat 简介、环境配置

tomcat简介 Tomcat是一个开源、免费的Web服务器,属于轻量级web服务器,适合部署中小型、并发访问用户不是很多的web项目,是部署中小型jsp的首选。 Tomcat和Nginx、Apache等Web服务器一样,具有处理静态资源的能力,但Tomcat处理静态HTML的能力不如Nginx、Apache。 此外tomcat…

JavaWeb与Tomcat简介

JavaWeb概念 什么是Javaweb JavaWeb 是指&#xff0c;所有通过 Java 语言编写可以通过浏览器访问的程序的总称&#xff0c;叫 JavaWeb。 同时JavaWeb 是基于请求和响应来开发的。 什么是请求 请求是指客户端给服务器发送数据&#xff0c;叫请求 Request。 什么是响应 响应…

Tomcat 简介

目录 1 install Tomcat 2 startup and shutdown Tomcat 3 config the Tomcat port 4 directory structure of Tomcat 1 install Tomcat go to http://tomcat.apache.org and install Tomcat. Please make sure that you have installed JDK and configed the JAVA_HOME co…

第二章:TomCat简介

一、TomCat概述 1、tomcat概述 tomcat是sun公司推出的&#xff08;小型Servlet/jsp测试工具&#xff09;的基础上研发出来的一个优秀的servlet容器。是一个完全使用java语言的开源插件。 2、tomcat作为servlet容器的基本功能 servlet是一种运行在服务器上的小插件。servlet最常…

Eclipse配置tomcat服务器及tomcat简介

一、手动配置tomcat到eclipse tomcat的压缩包资源可以去资源包中下载。&#xff08;win32和win64都有&#xff09; 1、 打开eclipse–>Window–>Preferences&#xff0c;按下图步骤选择&#xff1a; 2、 博主给的资源是tomcat7.0版的&#xff0c;所以这里选择配置7.0版…

Tomcat概述

文章目录 一、Tomcat简介&#xff08;1&#xff09;Tomcat概述&#xff08;2&#xff09;Tomcat和Apache的比较&#xff08;3&#xff09;Tomcat同类产品&#xff08;4&#xff09;Tocmat和JDK的关系&#xff08;5&#xff09;Tomcat和JDK版本对应图 二、Tomcat工作原理&#x…

tomcat的简介

1. tomcat是什么 Tomcat是Apache 软件基金会&#xff08;Apache Software Foundation&#xff09;的Jakarta 项目中的一个核心项目&#xff0c;由Apache、Sun 和其他一些公司及个人共同开发而成。 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应…

仿酷狗音乐播放器开发日志十八——换肤功能的实现二:改变控件和窗体透明度(附挂件类源码)

转载请说明原出处&#xff0c;谢谢~~ 昨天把大致布局分析了一下&#xff0c;昨天晚上把布局写好实现了&#xff0c;今天把大致的功能完成了一下&#xff0c;现在的外观已经和原酷狗的换肤界面完全一样&#xff0c;其中的调整播放列表透明度和设置整个软件透明度的代码已经完成了…

stylish网站换肤与网站分析妙用

作者&#xff1a;吴甜甜 个人博客网站&#xff1a; wutiantian.github.io 微信公众号&#xff1a; 吴甜甜的博客 stylish是火狐浏览器等平台的换肤插件 结合F12开发者功能可以进行&#xff1a; 背景色看起来不舒服&#xff0c;想换种颜色页面有一些内容你不想看到&#xff0c…

Unity3D 模型换肤技术

最近在看Unity3D的人物模型和动画。所以今天先说下人物的换装吧。相信大家都玩过网游吧&#xff0c;没有玩过的也相信见过&#xff0c;就是网游或者单机游戏里的人物会有更换服装&#xff0c;更换武器的功能。如果外形(mesh)是一样的&#xff0c;那么把贴图换下就好&#xff0c…

C++ QT结合FFmpeg实战开发视频播放器-13视频播放器换肤功能实现(1)背景属性添加

视频播放器换肤功能实现(1)背景属性添加 作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; 视频播放器换肤功能实现(1)背景属性添加 回到我们的编辑器源码中&#xff0c; 运行程序&am…

iOS端实现节日换肤

本文是我在网上看到一篇不错的文章,因为之前没接触过,所以特意转过来,和大家一起分享下..以下正文:一、问题的提出  不知道大家有没有发现, 元旦期间, 很多APP界面里的图标都换成了具有节日气氛的样式,而在过了元旦节之后, 这些图标又悄无声息的变回了本来的面貌.   这些具…

换肤 与 静态库

一 换肤 基本的换肤功能实现选中皮肤保存至系统偏好 // 记录用户选中的皮肤[[NSUserDefaults standardUserDefaults] setObject:skinColor forKey:"skinColor"];[[NSUserDefaults standardUserDefaults] synchronize];123123 抽取SkinTools单例&#xff0c;简化视图…

C++ QT结合FFmpeg实战开发视频播放器-15换肤功能的后台实现

作者&#xff1a;虚幻私塾 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; 一、换肤功能的后台实现 定义changeBackground函数&#xff0c;让qml去调用这个函数来实现换肤功能&#xff0c; 函数的实现调用了set…

Element UI主题换肤功能(基于vue-element-admin框架)

环境信息&#xff1a; 日期&#xff1a;2022-08-05 node版本&#xff1a;v14.15.4 "sass": "1.26.8", "sass-loader": "8.0.2", 本次实现的是基于花裤衩大佬的 vue-element-admin 或者 vue-admin-template 的前端框架实现的主题换肤功…

JavaScript:演示Ajax的get和post请求,练习选顶卡和换肤案例

JavaScript:演示Ajax的get和post请求&#xff0c;练习选顶卡和换肤案例 Ajax 异步请求 特别提示: 异步请求不要使用live server插件,必须创建一个本地服务器环境 同步与异步 以前端请求,后端响应为例 同步: 前端发请求, 必须等到后端响应完成,才允许发送另一个请求异步: 前端…

Android换肤之Android-skin-support

前言 之前做个APP需要用到换肤&#xff0c;在githup上面找了很久&#xff0c;终于找到一款功能强大、基本能够满足产品需求的换肤框架&#xff0c;那就是Android-skin-support&#xff0c;这个框架换肤功能很强大、不管是白天、黑夜还是任意颜色、图片的皮肤包都可以&#xff…

对 Android 应用换肤方案的总结

作者&#xff1a;me 虽然现在已经有很多不错的换肤方案&#xff0c;但是这些方案或多或少都存在自己的问题。在这篇文章中&#xff0c;我将对 Android 现有的一些动态换肤方案进行梳理&#xff0c;对其底层实现原理进行分析&#xff0c;然后对开发一个新的换肤方案的可能性进行…

前端换肤,聊一聊主题切换那些事

一些网站通常会提供白天、夜间模式&#xff0c;以及自定义主题等等&#xff0c;这种主题切换也就是本文说的前端换肤。 这次案例用的是白天和夜间模式的切换&#xff0c;在做换肤之前&#xff0c;得先知道一件事情&#xff1a;css的变量定义&#xff0c;对变量定义不熟悉的同学…

android 皮肤,Android换肤

前言 之前做个APP需要用到换肤&#xff0c;在githup上面找了很久&#xff0c;终于找到一款功能强大、基本能够满足产品需求的换肤框架&#xff0c;那就是Android-skin-support&#xff0c;这个框架换肤功能很强大、不管是白天、黑夜还是任意颜色、图片的皮肤包都可以&#xff0…