Tomcat是什么,Tomcat安装配置教程(图文并茂)
Web 服务器由硬件和软件共同构成:
服务器只是一台设备,必须安装服务器软件才能提供服务。通常情况下,我们可以把 Web 服务器理解成一台计算机主机,只不过这台计算机需要提供可靠的服务,对其在处理能力、稳定性、安全性方面的要求比普通计算机更高。
由于 Tomcat 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱,并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。
Tomcat 服务器的结构图如下图所示:

图 1 Tomcat服务器的结构图
Tomcat 的主要组件包括 Server 服务器、Service 服务、Connector 连接器和 Container 容器。
Connector 连接器和 Container 容器是 Tomcat 的核心。一个 Container 容器和一个或多个 Connector 连接器组合在一起,加上其他一些支持组件共同组成一个 Service 服务,有了 Service 服务便可以对外提供服务能力。
不过 Service 服务的正常运行需要一个生存环境,这个环境便是 Server 服务器,Server 服务器为 Service 服务的正常运行提供了生存环境,且 Server 服务器可以同时管理一个或多个 Service 服务。
对于企业来说,Tomcat 7.0 和 Tomcat 8.0 是使用比较广泛的版本。基本上 Tomcat 6.0 以下的版本都不再使用。
下面以 apache-tomcat-8.5.27-windows-x64.zip 压缩包为例,演示 Tomcat 的安装与部署。
首先进入 Tomcat 官方网站,下载该压缩包并进行解压。需要注意的是,为防止路径解析失败,请确保下载到非中文无空格的目录下。

图 2 将Tomcat解压到D:\ProgramFiles\apache-tomcat-8.5.27
如上图所示,将 Tomcat 解压到“D:\ProgramFiles\apache-tomcat-8.5.27”目录,这个目录包含 Tomcat 的 bin 目录、conf 目录等,称之为 Tomcat 的安装目录或根目录。
bin目录下存放的是二进制可执行文件。如果是安装版,那么这个目录下会有两个 exe 文件:tomcat8.exe 和 tomcat8w.exe。前者是在控制台下启动Tomcat,后者是弹出 GUI 窗口启动 Tomcat。如果是解压版,那么会有 startup.bat 和 shutdown.bat 文件,startup.bat 用来启动 Tomcat,但需要先配置 JAVA_HOME 环境变量才能启动,shutdawn.bat 用来停止 Tomcat。
conf 是一个非常重要的目录,这个目录下有四个最为重要的文件,具体如下:
lib 目录是 Tomcat 的类库,里面是一大堆 jar 文件。如果需要添加 Tomcat 依赖的 jar 文件,可以把它存放到该目录中,当然也可以把应用依赖的 jar 文件存放到这个目录中,这个目录中的 jar 所有项目都可以共享,但这样你的应用存放到其他 Tomcat 下时就不能再共享这个目录下的 jar 包了,因此建议只把 Tomcat 需要的 jar 包存放到这个目录下。
logs 目录中都是日志文件,记录了 Tomcat 启动和关闭的信息,如果启动 Tomcat 时有错误,那么异常也会记录在日志文件中。
temp 目录存放 Tomcat 的临时文件,这个目录下的文件可以在停止 Tomcat 后删除。
webapps 是存放 Web 项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在目录,那么都是 tomcat 自带的项目。其中,ROOT 是一个特殊的项目,在地址栏中访问:http://127.0.0.1:8080,没有给出项目目录时,对应的就是 ROOT 项目。可通过链接 http://localhost:8080/examples,进入示例项目。其中 examples 就是项目名,即文件夹的名字。
work 目录用于存放运行时生成的文件,最终运行的文件都保存在这里。work 中的内容是通过部署 webapps 中的项目生成的!可以把这个目录下的内容删除,再次运行时会重新生成。当客户端用户访问一个 JSP 文件时,Tomcat 会通过 JSP 生成 Java 文件,然后再编译 Java 文件生成 class 文件,生成的 java 和 class 文件都会存放到这个目录下。

图 3 右击“此电脑”选择“属性”
② 单击“高级系统设置”选项,如下图所示。

图 4 单击“高级系统设置”选项
③ 单击“高级”选项卡中的“环境变量(N)...”按钮,如下图所示。

图 5 单击“环境变量(N)”按钮
④ 在系统变量中单击“新建”按钮,创建“JAVA_HOME”变量,对应的变量值为 JDK 安装目录,如“D:\Program Files\Java\jdk1.8.0_141”,如下图所示(注意,这里先检查是否已经配置该环境变量,没有配置再新建)。

图 6 创建“JAVA_HOME”变量
⑤ 找到“系统变量”的 Path 变量,将“%JAVA_HOME%\bin”加入 Path 环境变量中,并单击“确定”按钮,如下图所示。

图 7 将“%JAVA_HOME%\bin”加入Path环境变量
建议使用系统变量中的 Path 变量,而不是上面用户变量中的 Path 变量,它们的区别在于,系统变量适用于任意用户,用户变量仅适用于当前用户。
⑥ 验证环境变量是否配置成功。关闭之前的命令行窗口,再次打开一个新的命令行窗口,否则新配置的环境变量在原来的命令行窗口不起作用。

图 8 验证环境变量是否配置成功

图 9 创建CATALINA_HOME环境变量
最后将“%CATALINA_HOME%\bin”加入 Path 变量中,如下图所示。

图 10 将“%CATALINA_HOME%\bin”加入Path变量

图 11 启动Tomcat并访问首页
如果启动失败,可能存在以下两种情况。
【情况一】双击 startup.bat 后窗口一闪而过。
如果双击 startup.bat 后窗口一闪而过,请查看 JAVA_HOME 是否配置正确。双击 startup.bat 会调用 catalina.bat,而 catalina.bat 会调用 setclasspath.bat,setclasspath.bat 会使用 JAVA_HOME 环境变量,因此我们必须在启动 Tomcat 之前把 JAVA_HOME 配置正确。
【情况二】启动失败,提示端口号被占用。
如果启动失败,提示端口号被占用,则将默认的 8080 端口修改为其他未使用的值,例如 8989 等。具体操作步骤如下,打开 Tomcat 解压目录下“conf\server.xml”文件,找到第一个 <Connector> 标签,修改 port 属性值,如下图所示。

图 12 查找<Connector>标签,修改port属性值
Web 服务器在启动时,实际上监听了本机上的一个端口,当有客户端向该端口发送请求时,Web 服务器就会处理请求。但是如果不是向其所监听的端口发送请求,Web 服务器不会做任何响应。例如,Tomcat 启动监听了 8989 端口,而访问的地址是“http://localhost:8080”,将不能正常访问。
- 服务器硬件指能够提供服务让其他客户端访问的设备;
- 服务器软件本质上是一个应用程序,由代码编写而成,其运行在服务器设备上,能够接收请求并根据请求给客户端响应数据、发布静态或动态资源。
服务器只是一台设备,必须安装服务器软件才能提供服务。通常情况下,我们可以把 Web 服务器理解成一台计算机主机,只不过这台计算机需要提供可靠的服务,对其在处理能力、稳定性、安全性方面的要求比普通计算机更高。
什么是Tomcat
Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 公司和其他一些公司及个人共同开发而成。由于 Sun 公司的参与和支持,最新的 Servlet 和 JSP 规范得以在 Tomcat 中体现。由于 Tomcat 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱,并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。
Tomcat 服务器的结构图如下图所示:

图 1 Tomcat服务器的结构图
Tomcat 的主要组件包括 Server 服务器、Service 服务、Connector 连接器和 Container 容器。
Connector 连接器和 Container 容器是 Tomcat 的核心。一个 Container 容器和一个或多个 Connector 连接器组合在一起,加上其他一些支持组件共同组成一个 Service 服务,有了 Service 服务便可以对外提供服务能力。
不过 Service 服务的正常运行需要一个生存环境,这个环境便是 Server 服务器,Server 服务器为 Service 服务的正常运行提供了生存环境,且 Server 服务器可以同时管理一个或多个 Service 服务。
对于企业来说,Tomcat 7.0 和 Tomcat 8.0 是使用比较广泛的版本。基本上 Tomcat 6.0 以下的版本都不再使用。
安装Tomcat
Tomcat 官网提供安装版和解压版两种版本的安装包,通常选择解压版即可,下载相应版本的安装包,直接解压就可以使用。下面以 apache-tomcat-8.5.27-windows-x64.zip 压缩包为例,演示 Tomcat 的安装与部署。
首先进入 Tomcat 官方网站,下载该压缩包并进行解压。需要注意的是,为防止路径解析失败,请确保下载到非中文无空格的目录下。

图 2 将Tomcat解压到D:\ProgramFiles\apache-tomcat-8.5.27
如上图所示,将 Tomcat 解压到“D:\ProgramFiles\apache-tomcat-8.5.27”目录,这个目录包含 Tomcat 的 bin 目录、conf 目录等,称之为 Tomcat 的安装目录或根目录。
bin目录下存放的是二进制可执行文件。如果是安装版,那么这个目录下会有两个 exe 文件:tomcat8.exe 和 tomcat8w.exe。前者是在控制台下启动Tomcat,后者是弹出 GUI 窗口启动 Tomcat。如果是解压版,那么会有 startup.bat 和 shutdown.bat 文件,startup.bat 用来启动 Tomcat,但需要先配置 JAVA_HOME 环境变量才能启动,shutdawn.bat 用来停止 Tomcat。
conf 是一个非常重要的目录,这个目录下有四个最为重要的文件,具体如下:
- server.xml:配置整个服务器端信息。例如,修改端口号(默认 HTTP 请求的端口号是 8080)。
- tomcat-users.xml:存储 tomcat 用户的文件,这里保存的是 tomcat 的用户名及密码,以及用户的角色信息。可以按照该文件中的注释信息添加tomcat用户,然后就可以在 Tomcat 主页中进入 Tomcat Manager 页面了。
- web.xml:部署描述符文件,这个文件中注册了很多 MIME 类型,即文档类型。这些 MIME 类型是客户端与服务器端之间说明文档类型的,如用户请求一个 HTML 网页,那么服务器端还会告诉客户端浏览器响应的文档是 text/html 类型的,这就是一个 MIME 类型。客户端浏览器通过这个 MIME 类型就知道如何处理它了。当然是在浏览器中显示这个 HTML 文件了。但如果服务器端响应的是一个 exe 文件,那么浏览器就不可能显示它,而是应该弹出下载窗口。MIME 用来说明文档内容的类型。
- context.xml:对所有应用的统一配置,通常我们不会去配置它。
lib 目录是 Tomcat 的类库,里面是一大堆 jar 文件。如果需要添加 Tomcat 依赖的 jar 文件,可以把它存放到该目录中,当然也可以把应用依赖的 jar 文件存放到这个目录中,这个目录中的 jar 所有项目都可以共享,但这样你的应用存放到其他 Tomcat 下时就不能再共享这个目录下的 jar 包了,因此建议只把 Tomcat 需要的 jar 包存放到这个目录下。
logs 目录中都是日志文件,记录了 Tomcat 启动和关闭的信息,如果启动 Tomcat 时有错误,那么异常也会记录在日志文件中。
temp 目录存放 Tomcat 的临时文件,这个目录下的文件可以在停止 Tomcat 后删除。
webapps 是存放 Web 项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在目录,那么都是 tomcat 自带的项目。其中,ROOT 是一个特殊的项目,在地址栏中访问:http://127.0.0.1:8080,没有给出项目目录时,对应的就是 ROOT 项目。可通过链接 http://localhost:8080/examples,进入示例项目。其中 examples 就是项目名,即文件夹的名字。
work 目录用于存放运行时生成的文件,最终运行的文件都保存在这里。work 中的内容是通过部署 webapps 中的项目生成的!可以把这个目录下的内容删除,再次运行时会重新生成。当客户端用户访问一个 JSP 文件时,Tomcat 会通过 JSP 生成 Java 文件,然后再编译 Java 文件生成 class 文件,生成的 java 和 class 文件都会存放到这个目录下。
配置环境变量
正式启动 Tomcat 前,我们还需要为其配置环境变量,包括 JAVA_HOME 和 CATALINA_HOME,步骤如下。1) 配置JAVA_HOME环境变量
① 右击“计算机/我的电脑/此电脑”按钮,选择“属性”选项,如下图所示。
图 3 右击“此电脑”选择“属性”
② 单击“高级系统设置”选项,如下图所示。

图 4 单击“高级系统设置”选项
③ 单击“高级”选项卡中的“环境变量(N)...”按钮,如下图所示。

图 5 单击“环境变量(N)”按钮
④ 在系统变量中单击“新建”按钮,创建“JAVA_HOME”变量,对应的变量值为 JDK 安装目录,如“D:\Program Files\Java\jdk1.8.0_141”,如下图所示(注意,这里先检查是否已经配置该环境变量,没有配置再新建)。

图 6 创建“JAVA_HOME”变量
⑤ 找到“系统变量”的 Path 变量,将“%JAVA_HOME%\bin”加入 Path 环境变量中,并单击“确定”按钮,如下图所示。

图 7 将“%JAVA_HOME%\bin”加入Path环境变量
建议使用系统变量中的 Path 变量,而不是上面用户变量中的 Path 变量,它们的区别在于,系统变量适用于任意用户,用户变量仅适用于当前用户。
⑥ 验证环境变量是否配置成功。关闭之前的命令行窗口,再次打开一个新的命令行窗口,否则新配置的环境变量在原来的命令行窗口不起作用。
Windows+R
键,再次输入 cmd
,打开命令行窗口,然后输入 javac
,发现在任意目录运行 javac 时不会提示“javac 不是内部或外部命令”,如下图所示,说明环境变量配置成功。
图 8 验证环境变量是否配置成功
2) 配置CATALINA_HOME环境变量
CATALINA_HOME 环境变量用来指定 Tomcat 的安装路径,为可选项。配置过程同上,打开“环境变量”管理页面,在系统变量中创建 CATALINA_HOME 环境变量,如下图所示。
图 9 创建CATALINA_HOME环境变量
最后将“%CATALINA_HOME%\bin”加入 Path 变量中,如下图所示。

图 10 将“%CATALINA_HOME%\bin”加入Path变量
启动Tomcat
配置好环境变量,接下来就可以正式启动 Tomcat 了。在 Tomcat 解压目录的 bin 目录下双击 startup.bat 启动 Tomcat 服务器,如下图所示,在浏览器地址栏访问“http://localhost:8080”进行测试。
图 11 启动Tomcat并访问首页
如果启动失败,可能存在以下两种情况。
【情况一】双击 startup.bat 后窗口一闪而过。
如果双击 startup.bat 后窗口一闪而过,请查看 JAVA_HOME 是否配置正确。双击 startup.bat 会调用 catalina.bat,而 catalina.bat 会调用 setclasspath.bat,setclasspath.bat 会使用 JAVA_HOME 环境变量,因此我们必须在启动 Tomcat 之前把 JAVA_HOME 配置正确。
【情况二】启动失败,提示端口号被占用。
如果启动失败,提示端口号被占用,则将默认的 8080 端口修改为其他未使用的值,例如 8989 等。具体操作步骤如下,打开 Tomcat 解压目录下“conf\server.xml”文件,找到第一个 <Connector> 标签,修改 port 属性值,如下图所示。

图 12 查找<Connector>标签,修改port属性值
Web 服务器在启动时,实际上监听了本机上的一个端口,当有客户端向该端口发送请求时,Web 服务器就会处理请求。但是如果不是向其所监听的端口发送请求,Web 服务器不会做任何响应。例如,Tomcat 启动监听了 8989 端口,而访问的地址是“http://localhost:8080”,将不能正常访问。