什么是Tomcat? 原始Java Servlet容器

Apache Tomcat是一个长期存在的开源Java Servlet容器,它实现了几个核心Java企业规范,即Java ServletJavaServer Pages(JSP)和WebSockets API。

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

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

Tomcat和Java Servlet API

Tomcat 9支持Servlet 4.0规范,并且需要JDK 8或更高版本。 Tomcat 8.5支持一些较新的功能,例如HTTP / 2,但仍然是Servlet 3容器。

Tomcat是哪种服务器?

Java生态系统支持多种类型的应用程序服务器,因此让我们消除它们的歧义,看看Tomcat适用于哪些位置:

  • Servlet容器是Java Servlet规范的实现,主要用于托管Java Servlet。
  • Web服务器是设计用来为本地系统(例如Apache)提供文件的服务器。
  • Java企业应用服务器是Java EE(现为Jakarta 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作为归档文件( .ziptar.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输出日志的位置。 请注意,默认情况下,Tomcat的日志进入/logs/catalina.out 。 您可以使用此文件与特定于应用程序的日志文件一起调试问题。
  • / lib是Tomcat查找JAR的地方。 在这里,您将存储Tomcat不附带的其他软件包,例如JPA。
  • / conf是Tomcat的配置XML,您可以在其中执行诸如为Tomcat添加用户和角色之类的操作。
步骤2.启动Tomcat

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

Tomcat欢迎页面 马修·泰森(Matthew Tyson)

图1. 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应用程序),该应用程序从以下位置调用服务器功能:在其代码库中。 总体而言,这提供了更简单和可移植的开发模型,并Swift成为标准。 例如,Spring Boot使用以dev模式运行的嵌入式Tomcat实例。

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

汤姆

通过将这些库添加到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平台的选择都证明了其持续的成功。

这个故事“什么是Tomcat?原始的Java servlet容器”最初是由JavaWorld发布的

翻译自: https://www.infoworld.com/article/3510460/what-is-apache-tomcat-the-original-java-servlet-container.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值