Apache Tomcat简介

article/2025/5/20 9:08:06
Apache Tomcat是一个长期存在的开源Java Servlet容器,它实现了几个核心Java企业规范,即Java Servlet,JavaServer Pages(JSP)和WebSockets API。

Tomcat是一个Apache Software Foundation项目,它于1998年首次发布,距Java本身仅四年。Tomcat开始作为第一个Java Servlet API和JSP规范的参考实现。尽管Tomcat不再是这两种技术的参考实现,但Tomcat仍然是使用最广泛的Java服务器,它拥有经过良好测试和验证的核心引擎,并具有良好的可扩展性。
Apache Tomcat简介Apache Tomcat简介

在这个简短的介绍中,您将了解为什么许多软件商店选择Tomcat来运行Java Web应用程序。您将获得Tomcat及其用法的概述,以及撰写本文时最新版本的安装说明。

Tomcat是哪种服务器?

Java生态系统支持多种类型的应用程序服务器,因此让我们消除它们的歧义,看看Tomcat适用于哪些位置:
甲servlet容器是Java Servlet规范的一个实现,主要用于托管的Java小服务程序。
一个Web服务器是一种旨在从本地系统提供文件服务,如Apache服务器。
一个Java企业应用服务器是一个完全成熟的实现的Java EE(今雅加达EE)规范。

从本质上讲,Tomcat是Servlet和JSP容器。一的Java servlet封装代码和业务逻辑,并定义了如何请求和响应应该在Java服务器处理。JSP是一种服务器端视图渲染技术。作为开发人员,您编写servlet或JSP页面,然后让Tomcat处理路由。

Tomcat还包含Coyote引擎,它是一个Web服务器。感谢Coyote,可以将Tomcat扩展为包括各种Java企业规范和功能,包括Java Persistence API(JPA)。
Tomcat还具有称为TomEE的扩展版本,其中包含更多企业功能。我将在本文稍后简要介绍TomEE。

让我们从使用Tomcat托管servlet和JSP开始。

下载并安装Tomcat

作为软件世界的古老者,有许多Tomcat版本可用。有关版本差异的信息可在Tomcat主页上找到。通常,您可以选择最新的稳定版本。

为了我们的目的,下载最新版本的Tomcat,当前版本为Tomcat 9。您可以选择将Tomcat作为归档文件(.zip或tar.gz)或作为已安装的服务下载。最好的选择取决于您-除非您当然不在Windows上运行,否则将使用存档。我们将在本文中使用存档。

Tomcat的Windows安装

如果您正在运行Windows并想使用安装程序,只需下载.exe文件并运行它。Tomcat会将其自身安装为具有合理默认值的服务。然后它将通知您安装位置,并且您可以像在其中解压缩存档一样继续进行。

步骤1.命令行安装

去命令行和类型gunzip apache-tomcat-9.0.19.tar.gz接着tar -xf apache-tomcat-9.0.19.tar。这将创建以下目录:
/ bin包含用于执行Tomcat的脚本。
/ webapps是您将部署应用程序的位置。
/ logs是Tomcat输出日志的位置。请注意,/logs/catalina.out默认情况下会进入Tomcat的日志。您可以使用此文件和特定于应用程序的日志文件一起调试问题。
/ lib是Tomcat查找JAR的地方。在这里,您将存储Tomcat不附带的其他软件包,例如JPA。
/ conf是Tomcat的配置XML,您可以在其中执行诸如为Tomcat添加用户和角色之类的操作。

步骤2.启动Tomcat

如果将Tomcat作为服务安装,则它已经在运行。否则,请继续并通过./catalina.sh start在命令行中输入启动它。(键入./catalina.sh不带参数的内容以查看所有可用命令)。现在,您应该能够在浏览器中浏览到Tomcat的欢迎屏幕。

在Tomcat中部署应用程序

Tomcat的webapps目录是您部署应用程序的位置。您可以将.war文件放在那里,然后Tomcat将运行它。WAR文件是Web应用程序资源的标准包装:一个JAR文件,其中包含一些其他文件,这些文件告诉容器(在本例中为Tomcat)如何运行它。

除了标准包装之外,还有三种其他方法可以在Tomcat中部署内容。

爆炸式部署

“爆炸式” Web应用程序是未压缩为WAR文件的应用程序,这意味着它仍包含目录和文件中列出的所有元素。您解压缩的Tomcat归档文件附带了以这种方式部署的几个示例,您可以在/webapps/examples目录中找到这些示例。展开式部署的优点是您可以查看那里的文件而不必担心压缩。

如果您导航到http://localhost:8080/examples/,则会找到链接列表。该页面由Tomcat通过/webapps/examples/index.html文件呈现。Tomcat正在从文件系统提供HTML文件,该文件系统是充当Web服务器的Tomcat Coyote引擎的实例。

您可以随意浏览所提供的示例,它们为您提供了有关Tomcat服务servlet,JSP和WebSockets的功能的良好概述。

Tomcat默认情况下还包含一个管理应用程序,该应用程序位于该/manager路径下。除其他外,此应用程序允许您从Web控制台启动,停止和重新部署应用程序。

提供静态内容

可以从文件系统提供文件,也可以从Tomcat转发到另一个HTTP服务器(如Apache)。另一个常见的设置是将文件服务器(如Apache或Nginx)放在Tomcat的前面,然后将您的API请求转发到Tomcat。在这些情况下,mod_JK库用于配置Tomcat和Apache(或什至是另一个Web服务器,如IIS)进行通信。

为了提高性能,主要是在交付静态内容方面,Tomcat还提供了Windows和Linux的本机包装。这被称为Tomcat APR,更多信息可在此处获得。这些对于典型的用例而言不是必需的,但很容易了解。

嵌入式Tomcat

长期以来,Jetty是唯一能够作为嵌入式服务器运行的服务器。那已经改变了,现在Tomcat也可以运行嵌入式了。使用嵌入式服务器的想法是,到目前为止,您没有拥有包含应用程序文件的服务器,而是拥有一个具有主类的应用程序(即独立的Java应用程序),该应用程序从以下位置调用服务器功能:在其代码库中。总体而言,这提供了更简单和可移植的开发模型,并迅速成为标准。例如,Spring Boot使用以dev模式运行的嵌入式Tomcat实例。

运行嵌入式服务器可以简化操作,因为您现在只处理单个组件(应用程序),而不是同时处理应用程序和服务器部署。另一方面,Tomcat作为独立主机运行的设置仍然很常见。

TomEE

通过将这些库添加到Tomcat本身或应用程序依赖项,可以将更多标准Java EE(或Jakarta EE)功能与Tomcat一起使用。另一个选择是TomEE服务器。TomEE是具有额外Java企业支持的相同Tomcat引擎,包括流行的JPA和CDI(上下文和依赖注入) API。TomEE的规范基于Java EE Web配置文件,因此它提供给您的不仅仅是Tomcat,而且不是像WildFly或Glassfish这样的成熟的Java EE应用服务器。

高可用性和集群

Tomcat支持高可用性和集群。本质上,高可用性是指故障转移到服务器的另一个实例并重新创建会话的能力,就好像什么都没出错。群集是创建同一服务器的多个版本以处理大量流量的能力。

结论

Tomcat保持积极发展,与变化保持同步,并为部署Web应用程序提供了坚实可靠的平台。它的持续流行以及作为许多PaaS系统的默认Java平台的选择都证明了其持续的成功。

本文地址:https://www.linuxprobe.com/apache-tomcat-intro.html


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

相关文章

Tomcat简介 安装 配置 示例

Tomcat简介 & 安装 & 配置 & 示例 1、Tomcat简介2、Tomcat安装1)RPM包安装2)二进制安装 3、配置1)server.xml组件类别2)server.xml组件介绍①Connector主要参数说明②host参数详解③Context参数说明 4、示例&#xff…

java web--Tomcat简介

javaweb--Tomcat简介 1.Tomcat概述2.Tomcat作为Servlet容器的基本功能3.Tomcat的组成结构4.Tomcat的工作模式 本文主要内容为Tomcat简介 1.Tomcat概述 Tomcat是一个优秀的servlet容器。Tomcat除了能够充当运行servlet的容器,还提供了作为Web服务器的一些实用功能&a…

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

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

JavaWeb与Tomcat简介

JavaWeb概念 什么是Javaweb JavaWeb 是指,所有通过 Java 语言编写可以通过浏览器访问的程序的总称,叫 JavaWeb。 同时JavaWeb 是基于请求和响应来开发的。 什么是请求 请求是指客户端给服务器发送数据,叫请求 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公司推出的(小型Servlet/jsp测试工具)的基础上研发出来的一个优秀的servlet容器。是一个完全使用java语言的开源插件。 2、tomcat作为servlet容器的基本功能 servlet是一种运行在服务器上的小插件。servlet最常…

Eclipse配置tomcat服务器及tomcat简介

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

Tomcat概述

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

tomcat的简介

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

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

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

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

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

Unity3D 模型换肤技术

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

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

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

iOS端实现节日换肤

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

换肤 与 静态库

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

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

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

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

环境信息: 日期:2022-08-05 node版本: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请求,练习选顶卡和换肤案例 Ajax 异步请求 特别提示: 异步请求不要使用live server插件,必须创建一个本地服务器环境 同步与异步 以前端请求,后端响应为例 同步: 前端发请求, 必须等到后端响应完成,才允许发送另一个请求异步: 前端…

Android换肤之Android-skin-support

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

对 Android 应用换肤方案的总结

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