Tomcat配置(一):背景知识和安装Tomcat(2)

tomcat是jdk+servlet(严格地说是+jsp)实现的精简版的java ee,由于它只在jdk的基础上附加了jsp和servlet类库,所以它的应用范围主要是web应用。tomcat项目目前由apache软件基金会维护。

它是一种应用程序服务器,只提供servlet容器,同时还提供apache解析静态HTML,只不过之它的处理能力不如独立的apache服务器。类似的应用程序服务还有websphere/weblogic/jetty/resin/jboss等,它们都是在jdk基础上附加各种类库实现不同程度的java ee(tomcat=jdk+servlet)。

对于tomcat来说,它高度模块化,通过各个组件实现各种功能。它的体系结构如下图所示:

Tomcat配置(一):背景知识和安装Tomcat

其中:

server是顶级类,一个server算是一个tomcat实例,在此层次中可定义tomcat服务的监听端口。

service是server下的子组件,用于封装绑定connector和containor,并为它们提供一个名称属性。有了service就可以提供相关的服务,如监听TCP连接请求、处理http请求。注意server是管理整个tomcat实例的层次,它和提供服务没有关系。

connector是连接器,定义http协议(默认)以及该协议的监听端口。连接器用于接收客户端请求并将containor处理的数据返回给客户端

containor称为容器,它和connector连接器进行绑定。该容器内有4个子容器,包括:engine容器、host容器、context容器、Wrapper容器。容器用于分析、处理请求,并构建响应给connector以发送给客户端。它和connector是tomcat的心脏组件。

engine容器定义servlet引擎,用于定义引擎的名称、默认的虚拟主机。引擎用于分析http请求并将请求转发给对应的虚拟主机

host容器用于定义虚拟主机。

context容器用于定义webapp,一个context定义一个webapp。它是真正管理servlet容器的层次。

wrapper容器对应的是真正的servlet容器,一个wrapper代表一个servlet,它负责管理一个Servlet,包括的Servlet的装载、初始化、执行以及资源回收。Wrapper是最底层的容器,一个context只能包含一个wrapper。在配置文件中,无法配置该容器的属性。

还有一些其他组件,如session管理组件、JMX等。

一个server可以有多个service。一个service可以有多个connector和唯一的containor。containor是容器类,从containor层次开始,真正进入servlet容器相关的过程它包含了唯一的engine容器,engine容器中包含了一个或多个host容器,host容器中包含了一个或多个context容器,context容器中包含了唯一的wrapper。它们的组织结构大致如下:

<server> <service> <connector /> <engine> <host> <context /> <context /> </host> <host> <context /> </host> </engine> </service> <service> ...... </service> </server> 2. 安装tomcat

tomcat依赖于jdk,所以需要先安装jdk。tomcat和jdk版本之间存在对应关系,应该考虑好要安装哪个版本的jdk以及哪个版本的tomcat。官方给出的对应关系网址为:https://tomcat.apache.org/whichversion.html。以下是到tomcat 9.x版本和jdk的对应表。

Tomcat配置(一):背景知识和安装Tomcat

本文jdk以jdk-8u131为例,表示版本为8的第131次更新,tomcat以apache-tomcat-8.5.14为例。

2.1 安装jdk

下载地址:Oracle.com/technetwork/java/javase/downloads/index.html

以rpm包的为例。

shell> yum localinstall -y jdk-8u131-linux-x64.rpm

安装路径为/usr/java。在该路径有3个文件,其中两个是版本号的软链接。

shell> ll /usr/java total 4 lrwxrwxrwx 1 root root 16 May 4 22:54 default -> /usr/java/latest drwxr-xr-x 9 root root 4096 May 4 22:54 jdk1.8.0_131 lrwxrwxrwx 1 root root 22 May 4 22:54 latest -> /usr/java/jdk1.8.0_131

通过这种软链接方式,以后有新版jdk要安装,直接改latest的链接对象即可。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/566a485032605e3944b73203268c377c.html