什么是Tomcat?原始Java Servlet容器
Posted 小小白的成长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是Tomcat?原始Java Servlet容器相关的知识,希望对你有一定的参考价值。
Apache Tomcat是一个长期存在的开源Java Servlet容器,它实现了几个核心Java企业规范,即Java Servlet,JavaServer Pages(JSP)和WebSockets API。
一个Apache软件基金会的项目,Tomcat的于1998年首次发布,Java本身仅仅四年之后。Tomcat开始作为第一个Java Servlet API和JSP规范的参考实现。尽管Tomcat不再是这两种技术的参考实现,但Tomcat仍然是使用最广泛的Java服务器,拥有经过良好测试和证明的核心引擎,并具有良好的可扩展性。
在这个简短的介绍中,您将了解为什么许多软件商店选择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上运行,否则将使用存档。我们将在本文中使用存档。
步骤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作为独立主机运行的设置仍然很常见。
Tomcat
通过将这些库添加到Tomcat本身或应用程序依赖项中,可以将更多标准Java EE(或Jakarta EE)功能与Tomcat一起使用。另一个选择是TomEE服务器。TomEE是具有额外Java企业支持的相同Tomcat引擎,其中包括流行的JPA和CDI(上下文和依赖注入) API。TomEE的规范基于Java EE Web配置文件,因此它提供给您的不仅仅是Tomcat,而且不是像WildFly或Glassfish这样的成熟的Java EE应用服务器。
结论
Tomcat保持积极发展,与变化保持同步,并为部署Web应用程序提供了可靠的平台。它的持续流行以及作为许多PaaS系统的默认Java平台的选择都证明了其持续的成功。
感觉不错的话,麻烦动动小手关注一下小编啦
更多精彩请点击
1.
以上是关于什么是Tomcat?原始Java Servlet容器的主要内容,如果未能解决你的问题,请参考以下文章