赞
踩
官网介绍翻译:
Apache Tomcat是一个对于 【Jakarta Servlet、Jakarta 服务器页面、Jakarta 表达式语言?、Jakarta WebSocket、Jakarta 注解和Jakarta 身份验证规范】的开源实现。
Jakarta EE平台(Jakarta EE platform)是Java EE平台(Java EE platform)的演变。Tomcat 10及更高版本实现了作为Jakarta EE一部分开发的规范。Tomcat 9及更早版本实现了为Java EE一部分发展的规范。
Apache Tomcat软件是在开放和参与式环境中开发的,并在Apache许可证版本2下发布。Apache Tomcat项目旨在与来自世界各地的一流开发人员合作。我们邀请您参与这个开放式开发项目。要了解有关参与的更多信息,请单击此处。
Apache Tomcat软件为各种行业和组织中的大量大规模、任务关键型web应用程序提供了支持。PoweredBy wiki页面上列出了其中一些用户及其故事。
Apache Tomcat、Tomcat、Apache、Apache羽毛和Apache Tomcat项目徽标是Apache软件基金会的商标。
官网介绍原文:
The Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These specifications are part of the Jakarta EE platform.
The Jakarta EE platform is the evolution of the Java EE platform. Tomcat 10 and later implement specifications developed as part of Jakarta EE. Tomcat 9 and earlier implement specifications developed as part of Java EE.
The Apache Tomcat software is developed in an open and participatory environment and released under the Apache License version 2. The Apache Tomcat project is intended to be a collaboration of the best-of-breed developers from around the world. We invite you to participate in this open development project. To learn more about getting involved, click here.
Apache Tomcat software powers numerous large-scale, mission-critical web applications across a diverse range of industries and organizations. Some of these users and their stories are listed on the PoweredBy wiki page.
Apache Tomcat, Tomcat, Apache, the Apache feather, and the Apache Tomcat project logo are trademarks of the Apache Software Foundation.
关于
jakarta
,在网上博客查到的资料,如下所示。
JavaEE目前最高版本是JavaEE8。
Oracle将JavaEE规范捐献给Apache了
Apache把JavaEE换名了,以后的版本就不叫JavaEE了,该叫jakartaEE,所以JavaEE8以后的版本就没有JavaEE了,叫做jakartaEE
- JavaEE8对应的Servlet类名是:javax.servlet.Servlet
- JakartaEE9对应的Servlet类名是:jakarta.servlet.Servlet
Tomcat服务器是一个免费、开源的Web应用服务器,是基于JAVA开发的WEB服务器软件,主要解析JAVA代码属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
Tomcat 的核心功能有两个,分别是【负责接收和响应请求】和【负责处理请求】。
- 连接器 Connector:用于负责接收和响应请求。
- 容器 Container:用于负责处理请求。
连接器和容器相辅相成,一起构成了基本的 web 服务 Service——【所以每个service要实现接收、响应和处理请求两种功能?】。每个 Tomcat 服务器可以管理多个 Service。
一般来说,Tomcat虽然和【Apache或者Nginx】这些Web服务器一样,具有处理HTML页面的功能。但是由于其处理静态HTML的能力远不及Apache或者Nginx,所以Tomcat通常是作为一个Servlet和JSP容器,单独运行在后端。
概括:
Tomcat 由一系列的组件构成,其中核心的组件有三个
Servlet 容器的内容,待补;
Java Servlet 相关资料可参考此博客。
JSP网页相关内容可参考此博客。
【Tomcat的客户端请求】 由 管道pipeline
处理,最后会通过Wrapper容器的管道,如下图一所示。此时它会调用Servlet实例的service方法进行逻辑处理,处理完后响应客户端,如下图二所示。整个处理由Tomcat的【Executor线程池的】线程 处理,而线程池的最大线程数是有限制的,所以这个处理过程越短,就能越快地将线程释放回线程池。但如果Servlet中的处理逻辑耗时越长,就会导致长期地占用Tomcat的处理线程池,最终影响Tomcat的整体处理能力。为了解决上面的问题,我们可以引入支持【异步的Servlet(即开启一个线程)】,如下一章节所示。
当客户端请求到来时,首先通过管道,然后进入到Wrapper容器的管道,再调用Servlet实例的service后,创建一个异步Servlet将耗时的逻辑操作封装起来,交给用户自己定义的线程池。这样就可以避免因Servlet中的处理逻辑耗时长而影响Tomcat的整体处理能力。
官网中给出了Tomcat各版本的选择推荐表,列出了与各个JDK版本兼容的情况,如下图所示。
superseded:supersede过去分词,是“作废的、被取代的”之意。所以支持JDK 1.8 Tomcat就应该选择 Tomcat 9.0 系列中的最新发布版
Tomcat 9.0.83
?
此处先给出Tomcat官网?待确认,点击链接后,如下图所示。
在下图红框中选择要下载的款式,比如Tomcat 9
,在右侧详情页面中提供了Binary Distributions
(已编译、可以直接使用的二进制版本)和Source Code Distributions
(需要在自己的运行环境下先编译、再使用的源代码版本)。
但是Binary Distributions
中又提供了四种版本,如上图所示。其区别与选择依据为(出自网上博客,待确认):
Core
:Tomcat正式的二进制发布版本,这就是我们是日常说的Tomcat,根据自己操作系统选择下载即可。Full documentation
:完整的说明文档,不过只有Linux版Deployer
:是基于Tomcat的web应用的发布器,就是用来将JavaEE应用动态发布到Tomcat时的命令行的工具,详见下方注释。如果不需要动态发布,则不需要下载。Embedded
:嵌入式版本Tomcat中Web应用的相关概念。
- 发布:指的是把一个Web应用安装到Tomcat服务器中的过程。
在Tomcat中发布Web应用可以有两种方式:
- 静态发布:指的是在Tomcat未启动的时候,把做好的Web应用直接复制到Tomcat服务器中。
- 动态发布:分为两种情况
- 2.1 指的是在Tomcat已经启动运行的情况下,通过Tomcat的自动部署功能动态操作已经发布的Web应用.
- 2.2 指的是通过Tomcat Manager这个Web应用通过远程把做好的Web应用发布到正在运行的Tomcat中去。
Deployer的作用就在动态发布Web应用到Tomcat中去的时候体现出来的。
Deployer是一个命令行的工具,它可以编译、验证Web应用,还可以把Web应用的全部资源打包到War文件中。
将Tomcat的安装包解压到磁盘的任意位(非中文无空格)后,目录结构如下图所示。
/conf
目录用于存放配置文件,如上图所示。其内包含server.xml
、web.xml
、context.xml
等配置文件,其中最重要的是server.xml
。
webapps目录是Tomcat默认的站点根目录——即访问该Tomcat的地址路径从以webapps目录下的位置开始。
安装服务的方法详见此博客中的“解决方案”章节。
CATALINA_HOME环境变量的名称来源补入这篇博客。
CATALINA容器
%CATALINA_HOME%\bin
,还有博客说%CATALINA_HOME%\lib; % CATALINA_HOME%\lib\servlet-api.jar; %CATALINA_HOME%\lib\jsp-api.jar;
也要添加如Path环境变量中,待确认。CATALINA_HOME变量的用途只是为了解耦配置Path变量?自认对Tomcat的配置,实际是针对在此Tomcat的webapps文件夹中部署的多个项目在资源、运行等方面的共同配置。
server.xml
是指Tomcat根目录下的/conf/server.xml
文件,其是Tomcat的配置文件。自认,对Tomcat的配置均是通过修改server.xml文件中的内容实现的。
server.xml
文件内容及各属性含义与取值详见此博客。
设置方法详见此博客。
Tomcat运行时,提示内存不足,如下图所示。
解决方案见此链接。
tomcat作为一个网络server端,它需要暴露一个socket端口来accept客户端的链接,可以通过port指定。在上面链接给出的的配置文件全文内容中,<Server>
标签下有两个<Connector>
,这是因为两者针对不同的协议,上面为响应HTTP协议指定使用的端口号,比如8089;下面是响应AJP协议时使用的端口号,本文是8009。相关内容如下所示,无关内容已剔除。
<Server port="8005" shutdown="SHUTDOWN">
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" maxhttpheadersize="102400" " redirectPort="8443"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
</Service>
</Server>
<Connector>
标签中的各属性详见上一小节“Tomcat的配置文件server.xml
全文内容”
通过http://localhost:11000访问服务器看是否启动、配置通过。
Tomcat的默认运行模式为BIO(blocking I/O)模式,即阻塞式I/O操作。补入这篇博客。
双击Tomcat根目录下bin文件夹中的startup.bat
。
运行Tomcat根目录下bin文件夹中的startup.sh
。
用浏览器访问http://localhost:8080
或者http://127.0.0.1:8080
。如果看到Tomcat自带的一个JSP页面,则表示安装成功,如下图所示。
8080是默认端口号,如果和其他软件冲突,去配置文件中server.xml中修改端口号即可
解决方案详见此博客。
组合拳:
https://www.cnblogs.com/zhangzhixi/archive/2020/12/22/14174337.html
https://www.cnblogs.com/zzmb/p/8258364.html
当开发的项目比较大时,Eclipse经常会报错,错误信息为:Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds,就是在超过45秒内项目没启动完,如下图所示。
这时就需要修改配置文件sever.xml中的启动时长。文件所在路径为你的eclipse的workspace:Eclipse-Workspace/.metadata/.plugins/org.eclipse.wst.server.core/servers.xml
将文件中的start-timeout改为100。
问题:对话框提示“Could not delete F:\Eclipse-Workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\jeecg-nomaven\WEB-INF\lib\freemarker-2.3.19.jar. May be locked by another process.”,补图。
处理方法:clean Tomcat即可,补入这篇博客
在Tomcat启动后、正在运行中的状态下,关闭Tomcat。
shutdown.bat
。在Tomcat关闭后、已停止运行的状态下,再启动Tomcat。
startup.bat
。在Tomcat启动后、正在运行中的状态下,关闭Tomcat。
shutdown.sh
。在Tomcat关闭后、已停止运行的状态下,再启动Tomcat。
startup.sh
。浏览器访问 http://.qhw.com:8080/ 页面显示This is kgc page!
HTTP 请求过程:
下方也给出了两张Tomcat运行流程图,如下所示。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。