1.1、Tomcat简介
是什么 ?:a reference implementation of the Servlet and JSP technologies.
开发语言:Java
开发组织:Apache
官方主页:http://tomcat.apache.org
1.2、通过包管理器安装Tomcat
操作系统包管理器安装命令
Windowsscoopscoop install tomcat
WindowsChocolateychoco install -y Tomcat
macOSHomeBrewbrew install tomcat
GNU/LinuxLinuxBrewbrew install tomcat
aptsudo apt-get install -y tomcat
CentOSyumsudo yum install -y tomcat
dnfsudo dnf install -y tomcat
openSUSEzyppersudo zypper install -y tomcat
Alpine Linuxapksudo apk add tomcat

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm tomcat
Gentoo LinuxPortagesudo emerge tomcat
1.3、通过下载编译好的二进制压缩包安装Tomcat

step1、安装依赖

下载时cURL
解压时targzip
运行时JRE | JDKPOSIX sh

step2、使用curl命令下载编译好的Tomcat二进制压缩包 (

curl -O http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.75/bin/apache-tomcat-7.0.75.tar.gz

step3、使用tar解压Tomcat压缩包

tar vxf ~/Downloads/apache-tomcat-7.0.55.tar.gz -C ~/bin

step4、配置环境变量

export TOMCAT_HOME=~/bin/apache-tomcat-7.0.55
export PATH=TOMCAT_HOME/bin:$PATH
1.4、Tomcat Docker Image

step1、创建一个存放日志的目录

mkdir -p ~/docker_volume/tomcat/logs

step2、下载Docker Official Tomcat Image, 并创建一个容器,然后启动该容器:

docker run -d \
            -p 8888:8080 \
            -v ~/docker_volume/tomcat/logs:/usr/local/tomcat/logs \
            --name tomcat \
            tomcat:9-jdk8-adoptopenjdk-openj9

step3、通过http://localhost:8888访问

1.5、Tomcat安装目录说明
1.5.1、bin

bin目录是存放各种命令行工具的,如下:

startup.sh启动Tomcat
shutdown.sh停止Tomcat
version.sh获取Tomcat运行时环境信息
configtest.sh检查配置文件语法是否正确的,如果正确会启动Tomcat
catalina.sh单个实例在Linux平台上的启动脚本
1.5.2、lib

Tomcat使用的Jar包存放目录,包括servletjspel语言等。

TomcatServletJSP规范的实现,而ServletJSP规范都有不同的版本, 不同的版本意味着支持的功能不同,如果我们在开发过程中使用了高版本的ServletJSP的功能, 而在部署的时候使用了低版本的ServletJSP,那么就会出现错误,我们如何知道我们当前安装的Tomcat是哪个版本的ServletJSP的实现呢?

servlet-api.jar就是Servlet规范的实现。

jsp-api.jar就是JSP规范的实现。

解压这两个文件,查看META-INF下的MANIFEST.MF文件。

查看Servlet版本:

unzip -o servlet-api.jar -d /tmp/ > /dev/null && cat /tmp/META-INF/MANIFEST.MF

查看JSP版本:

unzip -o jsp-api.jar -d /tmp/ > /dev/null && cat /tmp/META-INF/MANIFEST.MF
1.5.3、conf

全局配置文件存放目录。所有的配置文件都在这里。

1.5.3.1、配置虚拟主机

所谓虚拟主机,就是将一个或多个主机名和Tomcat所在的服务器进行绑定。由于一个IP地址可以和多个主机进行帮定, 我们可以将不同的主机指向服务器(指硬件)上的不同文件夹,造成一个服务器(或者一个IP)多个主机的“虚拟主机”效果。 这个实现起来相当的简单。只需要在server.xml文件中新建Host节点,将其属性进行不同设置即可。

示例:

<Host name="wwww.fpliu.com"  appBase="webapps" unpackWARs="true" autoDeploy="true" />
1.5.3.2、修改端口

我们都有过访问网站的经历。我们一般只输入了主机名,那么假设我们现在作为网络服务提供者,将要对外发布网站,我们怎么让用户只输入我们的主机名就能看到我们为他/她准备的网页呢?

首先我们需要将监听端口设置为80,道理很简单,用户不会在浏览器输入:8080来访问网站,浏览器也不会自动将请求发送到服务器的8080端口。

示例:

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
1.5.3.3、修改默认页面

一般的,要访问的首页文件是index.html。如果让用户输入这么一长串,显然用户体验不好!web.xml这个配置文件是对所有站点的共同属性做出了设置。比如大家看文件结尾处:

示例:

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

这个叫做欢迎页面,当没有输入资源地址时,会由上至下地查找,获取页面,进行响应。 改动它就可以,但是不建议在这里改,会使得所有站点设置变化,你应该将其复制到你需要改动的站点下的web.xml,进行设置。

1.5.4、webapps

一般,将Tomcat作为Web服务器的时候,会将Web应用部署到该文件夹中。

一个Tomcat可以管理很多个Web App,我们把要Tomcat管理的那些Web App都放到该目录下, 启动Tomcat之后就可以访问了。

webapps目录中有一个文件夹叫ROOT,这是默认访问的应用。 比如在浏览器中输入localhost:8080,浏览器会将该URL补充为:http://localhost:8080/,在前面加了协议,在后面加了/,这个/就表示ROOT的意思。

1.5.5、work

存放JSP页面缓存的目录。

从work里进入Catalina后的如localhost站点文件夹下的项目,我们可以看到那些jsp页面会被编译成Servlet Java类文件,下次再来访问时, 就直接运行servlet类就可以向客户端反应响应页面了,所以第一次访问时会比较慢,因为新发布上去的页面在第一个人访问时, 会先编译成servlet文件,所以慢了,一旦编译好,那么除非jsp页面修改,不然下次访问直接运行servlet就可以响应用户, 编译后的文件都会存储在work目录下。而tomcat显示的目录,都会从这个缓存里找编译后的jsp对应的class文件。 所以当清空了work目录后,该过程将会从新来过。有的时候会遇到一个问题,就是修改后的页面在tomcat运行的时候显示不了修改后的痕迹。 这个时候删除work目录下对应的项目文件夹,重新启动tomcat就可以了。

1.5.5、logs

Tomcat运行过程中产生的日志存放目录。