第2章 程序如何运行——Tomcat服务器的搭建

学习指引

本章主要介绍Tomcat服务器及其安装配置过程,重点介绍服务器与IDE的启动和关闭,在服务器和IDE中修改Tomcat端口以及如何在Eclipse中使用Tomcat,最后介绍了如何部署Web项目到Tomcat中。

重点导读

• 了解Tomcat服务器工作原理。

• 掌握Tomcat服务器安装方法。

• 掌握如何修改Tomcat端口。

• 掌握在Eclipse中使用Tomcat。

• 掌握将Web项目部署到Tomcat的方法。

2.1 Web服务器简介

Web服务器一般指网站服务器,可以向浏览器等Web客户端提供文档。Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序;不仅可以放置网站文件,让全世界网友浏览,也可以放置数据文件,让全世界网友下载。常用的Web服务器有很多,本节将简单介绍便于Java Web使用的Tomcat、Nginx和Jetty服务器。

1. Tomcat服务器

Tomcat服务器是一款免费开放源代码的Web应用服务器。Tomcat是由Apache开发的一个Servlet容器,实现了对Servlet和JSP的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。Tomcat服务器属于轻量级应用服务器。

Tomcat服务器在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上,Tomcat是Apache服务器的扩展,但运行时它是独立运行的,所以当运行Tomcat时,它实际上是作为一个与Apache独立的进程单独运行的。当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能。它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。

2. Nginx服务器

Nginx服务器是一款高性能的HTTP和反向代理服务器,也是电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。

Nginx服务器的特点是占有内存少,并发能力强。事实上,Nginx的并发能力确实在同类型的网页服务器中表现较好,使用Nginx网站的用户有:百度、京东、新浪、网易、腾讯、淘宝等。Nginx是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性。在连接高并发的情况下,Nginx是Apache服务器不错的替代品,能够支持高达50 000个并发连接数的响应。

3. Jetty服务器

Jetty服务器是目前比较被看好的一款Servlet服务器,该服务器的架构比较简单,但在可扩展性方面表现得非常灵活。它有一个基本数据模型,这个数据模型就是Handler,所有可以被扩展的组件都可以作为一个Handler添加到Server中,Jetty就是帮助用户管理这些Handler数据模型,以便于更迅捷的开发。

因为Tomcat服务器技术先进、性能稳定且免费,深受广大Java爱好者的喜爱,同时也得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。接下来就以Tomcat服务器为例,学习Tomcat服务器的搭建、启动及配置方法。

2.2 Tomcat的下载与安装

Tomcat的安装有两种方式,一种是解压之后不需要安装就可以直接使用的方式,也称解压版;另一种是应用程序需要安装之后才能使用的方式,称为安装版。在介绍Tomcat安装方法前,下面先了解一下Tomcat各个版本的区别,以帮助读者更好地选择适合自己的软件版本。

2.2.1 了解Tomcat版本区别

当前Tomcat服务器主要包含Tomcat 9、Tomcat 8和Tomcat 7等版本。

1. Tomcat 9版本

Tomcat 9是当前最新版本,它是建立在Tomcat 8版本基础上,符合Servlet 4.0规范,执行JSP 2.4、EL 3.1、Web Socket 1.2和JASPIC 1.1规格,包括以下功能改进。

(1)添加对HTTP / 2的支持(需要APR /本地库)。

(2)添加对TLS虚拟主机的支持。

(3)添加了对使用JSSE连接器(NIO和NIO2)使用OpenSSL for TLS的支持。

2. Tomcat 8版本

Tomcat 8是建立在Tomcat 7版本基础之上的改进版本,符合Servlet 3.1、JSP 2.3、EL 3.0和WebSocket 1.1规格。除此之外,Tomcat 8在单个公共资源实现来替换早期版本中提供的多个资源扩展特性方面做了重大改进。

3. Tomcat 7版本

Tomcat 7是Tomcat 6的改进版本,符合Servlet 3.0、JSP 2.2、EL 2.2和WebSocket 1.1规格。除此之外,它还包括以下改进。

(1)Web应用程序内存泄漏检测和预防。

(2)提高了Manager和Host Manager应用程序的安全性。

(3)通用CSRF保护。

(4)支持直接在Web应用程序中包含外部内容。

(5)重构(连接器,生命周期)和大量的内部代码清理。

4. Tomcat 6版本

Tomcat 6是Tomcat 5.5的改进版本,符合Servlet 2.5和JSP 2.1规范。除此之外,它还包括以下改进。

(1)内存使用优化。

(2)高级IO功能。

(3)重构聚类。

Tomcat是一个开源的Java Servlet的软件实现和Java Server Pages技术的服务器。不同版本的Tomcat可用于不同版本的Servlet和JSP规范。它们之间的映射规范和相应的Tomcat版本如表2-1所示。

表2-1 Tomcat版本映射表

每个版本的Tomcat支持任何稳定的Java版本,选择版本时只要满足表2-1最后一栏的要求即可。本书以Tomcat 9版本为例进行Tomcat服务器的搭建。

2.2.2 安装Tomcat解压版

在第1.1节JDK的下载与安装中已经介绍了如何配置JDK的环境变量,安装Tomcat是建立在此基础上的。如果读者已经正确完成了配置JDK和JRE环境变量设置工作,接下来就可以学习Tomcat解压版本的安装,具体操作步骤如下。

步骤1:打开浏览器,在地址栏中输入http://tomcat.apache.org网址进入Tomcat官网,Tomcat官网界面如图2-1所示。

步骤2:在Tomcat官网界面中,找到软件下载区域(Download),如图2-2所示。

步骤3:在Download下载区域,选择单击Tomcat 9版本选项。在Tomcat 9下载界面的快速导航(Quick Navigation)栏,单击9.0.10选项,如图2-3所示。

图2-1 Tomcat官网界面

图2-2 Download区域

图2-3 Tomcat 9下载快速导航界面

步骤4:在进入选择压缩包的下载界面中,根据自己计算机CPU支持的是32位或64位以及计算机配置,选择32-bit Windows zip或64-bit Windows zip压缩版进行下载,如图2-4所示。

图2-4 选择适合自己计算机的解压版下载

步骤5:下载完成后,选择并将该压缩文件解压到英文路径的盘符下,如图2-5所示放到D:\Tomcat下,只要是纯英文路径下都可以。到此解压版的安装便完成了,接下来需要进行环境变量的配置。

图2-5 Tomcat路径

步骤6:环境变量配置。

(1)在计算机桌面右击“计算机”或“我的计算机”图标,在弹出的快捷菜单中选择“属性”→“高级系统设置”→“环境变量”选项,打开“系统变量”对话框,如图2-6所示。

图2-6 “系统变量”对话框

(2)在“系统变量”对话框中单击“新建”按钮,在“变量名”文本框中填写“CATALINA_HOME”,在“变量值”文本框中填写前面所解压文件存放的路径,该目录下有lib、bin等文件夹,如图2-7所示。

图2-7 添加CATALINA_HOME变量

(3)完成变量名和变量值的设置后,单击“确定”按钮,完成解压版Tomcat的安装操作。

2.2.3 安装Tomcat安装版

下面详细介绍Tomcat服务器安装版的安装方法。

步骤1:参照安装解压版步骤第1~3步的方法进入Tomcat 9下载快速导航界面。

步骤2:在此选择32-bit/64-bit Windows Service Installer下载选项,如图2-8所示。

图2-8 选择安装版下载

步骤3:下载完成后,解压并打开软件压缩包,双击软件安装包中的Setup.exe文件,执行软件安装程序。依次单击Next按钮,如图2-9所示。

图2-9 安装界面

步骤4:此时安装程序会提示设置端口和用户信息。在此可以更改端口号,设置用户名,密码等操作,在绝大多数情况下并不需要去更改或者设置它,默认设置就可以。直接单击Next按钮即可,继续安装,如图2-10所示。

图2-10 设置端口及用户信息界面

步骤5:此时安装程序进入选择软件安装路径界面,单击Browse按钮为程序指定安装路径。完成路径设置后单击Install按钮,继续软件安装,如图2-11所示。

图2-11 选择安装路径

步骤6:单击Install安装按钮后便可自动完成软件的安装操作。

步骤7:完成软件的安装操作后,参照安装解压版步骤第6步环境变量配置方法,完成安装版Tomcat环境变量的配置操作,便完成了Tomcat的安装操作。

2.3 Tomcat的启动与关闭

Tomcat安装好之后,还需要学会如何启动与关闭它,接下来介绍Tomcat的启动与关闭方法。

2.3.1 在服务器中启动与关闭

在服务器中启动与关闭Tomcat的方法如下。

步骤1:Tomcat安装完成后,打开Tomcat安装路径下的bin文件夹,找到startup.bat文件双击运行,出现如图2-12所示的信息提示,则说明Tomcat服务器已经启动成功。

图2-12 运行startup.bat文件

步骤2:打开任意浏览器,并在浏览器地址栏中输入http://localhost:8080/地址(8080是Tomcat默认端口号),若出现如图2-13所示的界面,则说明Tomcat服务器运行成功。

步骤3:关闭Tomcat服务。双击运行安装路径下bin目录中的shutdown.bat文件,即可关闭Tomcat服务。

图2-13 服务器启动成功

2.3.2 在IDE中启动与关闭

所谓的IDE就是像Eclipse这样的编译器,在此以Eclipse为例介绍Tomcat的启动与关闭。

步骤1:启动Eclipse Oxygen程序,在主界面靠下窗口中单击Servers标签,出现如图2-14所示的界面。

步骤2:单击图2-14中框中的链接,添加一个Tomcat服务,在打开的New Server对话框中找到Apache文件夹并打开,选择安装的Tomcat版本,如图2-15所示,然后单击Next按钮。

图2-14 添加Tomcat服务

图2-15 选择Tomcat版本

步骤3:在添加Tomcat服务窗口中,单击Browse按钮,选择Tomcat的安装路径,单击Finish按钮,如图2-16所示。

图2-16 选择Tomcat安装的路径

步骤4:服务添加成功后,单击图2-14中的Servers标签,便会出现刚才添加的服务,单击这个服务在窗口右侧会出现启动和关闭服务按钮。单击图2-17中的“启动”或“关闭”按钮,即可启动或关闭Tomcat服务。

图2-17 第三个为“启动”按钮,第五个为“关闭”按钮

步骤5:单击“启动”按钮,启动成功后如图2-18所示。

若启动不成功,大多数情况下都是在外部已经启动了,可能是使用介绍的第一种方法启动了但没有关闭,这时Eclipse会报错,如图2-19所示。

出现这种情况,可打开Tomcat的安装目录下的bin文件夹,找到目录中的shutdown.bat文件,双击关闭Tomcat服务,然后再到Eclipse中启动即可。

图2-18 Tomcat启动成功

图2-19 Tomcat启动失败

2.4 修改Tomcat端口号

默认情况下,Tomcat的端口是8080,但如果使用了两个Tomcat,那么就需要修改其中的一个Tomcat的端口号才能使得两个Tomcat同时正常工作。那么,如何修改Tomcat的端口号呢?接下来分别介绍在服务器和IDE中修改端口号的方法。

2.4.1 在服务器中修改端口号

在服务器中修改端口号的具体方法如下。

步骤1:在Tomcat安装目录(或者解压目录)下找到并打开config文件夹,在里面找到server.xml文件。

步骤2:用文件编辑工具或者记事本打开server.xml文件,并找到下面的代码段。

步骤3:将port="8080"的端口值改为其他数值便完成了修改端口的操作。

2.4.2 在IDE中修改端口号

在IDE中修改端口号的具体方法如下。

注:本例演示在Eclipse集成开发环境中修改Tomcat端口号。

步骤1:在Eclipse集成开发环境中双击Server选项卡下的Tomcat本地服务器,如图2-20所示。

图2-20 Server下的服务器

步骤2:在窗口中找到Ports项,在HTTP/1.1对应栏中输入想修改的端口号值(默认为8080),如图2-21所示。

图2-21 Eclipse中修改端口号

步骤3:完成端口号的修改后保存即可。

2.5 将Web项目部署到Tomcat中

已完成的项目需要部署到Tomcat中,才能被浏览器正常地浏览和访问。本节将分别介绍在Tomcat和Eclipse中部署Web项目的方法。

2.5.1 在服务器中部署

Tomcat部署好了,接下来就可以发布项目了,可通过IP+端口号+项目名来访问。将Web项目部署到Tomcat中的方法之一是部署没有封装到WAR文件中的Web项目。直接把项目复制到Tomcat的webapps文件夹下即可,具体步骤如下。

步骤1:新建文件夹myweb,新建文本文件改名为web.jsp。

web.jsp代码如下。

把myweb项目放到Tomcat的webapps文件夹下,如图2-22所示。

图2-22 服务器中部署Web项目

步骤2:打开Tomcat服务器(确保服务器打开),在地址栏中输入http://localhost:8080/myweb/web.jsp就可以在浏览器中访问我们的项目了,如图2-23所示。

图2-23 浏览器访问部署项目

看到如图2-23所示的界面,则说明在Tomcat服务器中已经完成了部署项目操作。

2.5.2 在Eclipse中部署

在这里将介绍如何通过Eclipse部署Web项目到Tomcat服务器中。

步骤1:打开Eclipse集成开发环境,双击Server下的Tomcat 9服务,如图2-24所示。

图2-24 打开Servers服务

步骤2:在第1步操作后显示的界面中,在Deploy path文本框中输入webapps文件夹名称,表示将当前Web项目部署至Tomcat/webapps目录下服务选项的本地服务器,如图2-25所示。

图2-25 修改服务器设置

步骤3:在Eclipse中新建一个动态Web项目。依次执行File→New→Dynamic Web Project命令,打开New Dynamic Web Project(新建项目)对话框,在Project name文本框中输入myWEB,作为项目名称。单击Finish按钮,完成新项目的创建,如图2-26所示。

图2-26 新建Web项目

步骤4:在新建的myWEB项目中新建一个JSP文件。右击项目名称myWEB,在弹出的快捷菜单中执行New→JSP File命令,如图2-27所示。

图2-27 执行新建JSP文件命令

步骤5:打开New JSP File(新建文件)对话框。在File name文本框中输入web.jsp作为文件名称,单击Finish按钮,完成新文件的创建,如图2-28所示。

图2-28 新建JSP文件

步骤6:在WebContent目录下新建一个web.jsp文件,在页面上输出一段字符,具体如下。

步骤7:在Eclipse浏览器地址栏中输入http://localhost:8080/web/web.jsp,如果浏览器中打开如图2-29所示的运行界面,说明Web项目部署成功。

图2-29 运行界面

2.6 就业面试解析与技巧

2.6.1 面试解析与技巧(一)

面试官:Tomcat的默认端口号是多少?请解释Tomcat中使用的连接器是什么?

应聘者:Tomcat的默认端口号是8080。

在Tomcat中,使用了两种类型的连接器。

HTTP连接器:它有许多可以更改的属性,以确定它的工作方式和访问功能,如重定向和代理转发。

AJP连接器:它以与HTTP连接器相同的方式工作,但是它们使用的是HTTP的AJP协议。AJP连接器通常通过插件技术mod_jk在Tomcat中实现。

2.6.2 面试解析与技巧(二)

面试官:解释如何使用WAR文件部署Web应用程序?

应聘者:在Tomcat的Web应用程序目录下,JSP、Servlet和它们的支持文件被放置在适当的子目录中。可以将Web应用程序目录下的所有文件压缩到一个压缩文件中,以.war文件扩展名结束。可以通过在webapps目录中放置WAR文件来执行Web应用程序。当一个Web服务器开始执行时,它会将WAR文件的内容提取到适当的webapps子目录中。