本文采用的Tomcat服务器版本是Tomcat8.5版本,Tomcat8.5支持Servlet3.1、JSP2.3以及EL3.0规范。并且Tomcat8.5版本对JDK8的支持比Tomcat8更加全面。因为我们一般使用Windows系统进行开发,所以本节将引导大家下载并安装windows版本的Tomcat服务器,以及启动Tomcat服务器并进行测试。最后,为了在开发时方便进行测试,我们会在Eclipse开发工具中集成Tomcat。
Tomcat介绍
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试程序的首选。
Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。
Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)。而O'Reilly出版的介绍Tomcat的书籍的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。
下载Tomcat
下载Windows版本的Tomcat服务器步骤如下:
● 打开浏览器,在地址栏中输入Tomcat服务器的官方网站:http://tomcat.apache.org。在网页左侧的Download列表中有Tomcat的各种版本,点击Tomcat 8超链接,进入到Tomcat 8的下载页面。如图1.5所示。
图1.5 Tomcat官网网站
● 在Tomcat 8的下载页面中,找到8.5.33(本书编写时Tomcat 8.5的最新版本号是8.5.33,但是未来网页中的版本号可能会与本书中显示的不一致)下的Core节点,在Core节点下包含了Tomcat 8.5服务器安装文件的不同平台下的不同版本。我们选择zip压缩版的Tomcat,点击“zip”即可进行下载。下载完成后是一个zip格式的压缩文件,将其解压缩到任意目录即可使用,无需安装。如图1.6所示。
图1.6 下载压缩版的Tomcat 8.5服务器安装文件
测试启动Tomcat服务器
下载压缩版的Tomcat服务器安装文件后,将其解压缩到磁盘中的任意位置,双击安装目录中bin目录下的startup.bat(注意,文件名的后缀是.bat而不是.sh,.sh是Linux系统上的脚本文件)文件即可启动Tomcat服务器。如图1.7所示Tomcat的启动和停止脚本文件。
Tomcat的启动和停止脚本
启动Tomcat服务器后,会弹出Tomcat的控制台,在控制台中滚动显示了Tomcat启动时的进度(如果启动失败,或者点击启动脚本后控制台一闪就消失了,请参照下一章节,1.5.4 Tomcat服务器启动常见问题进行解决)。如图1.8所示。
Tomcat启动成功时控制台输出的信息
当Tomcat启动成功后,我们需要在浏览器中访问http://localhost:8080,如果浏览器显示如图1.9所示的页面,表示Tomcat服务器启动成功。
图1.9 Tomcat启动成功后在浏览器中访问http://localhost:8080
Tomcat启动常见问题
导致Tomcat服务器无法正常启动的原因一般来说就是如下的两个。
● JAVA_HOME环境变量设置问题
要想使用启动脚本(startup.bat)启动Tomcat服务器,首先要做的就是在Windows中设置JAVA_HOME环境变量,因为Tomcat服务器的启动需要用到这个JAVA_HOME环境变量,如果Windows中不存在JAVA_HOME环境变量,则Tomcat服务器是无法启动的(Tomcat控制台一闪就消失)。将JDK的安装目录路径添加进JAVA_HOME环境变量即可解决。
● Tomcat端口占用问题
因为Tomcat服务器默认使用的是8080端口,如果这个8080端口被其它的程序占用了,那么Tomcat服务器就会无法正常启动,现象就是Tomcat控制台中显示了一些信息然后就自动关闭了。
由于这个控制台窗口从启动到关闭的时间非常短,我们很难通过这个窗口看到Tomcat启动时的报错异常信息,因此我们一般只能通过Tomcat服务器记录的log(日志)信息去查看Tomcat服务器的运行情况。在Tomcat服务器的安装目录下有一个logs文件夹。在该文件夹下是Tomcat服务器全部的日志文件。如图1.10所示。
图1.10 Tomcat服务器的日志文件
打开catalina.2018-08-27.log(该文件是作者Tomcat启动失败时的Tomcat日志文件,读者需要根据自己目前的日期打开相应的文件,如2018年8月27日Tomcat启动失败,则需要找到catalina.2018-08-27.log文件进行查看),显示如图1.11所示的日志记录。
图1.11 Tomcat部分日志记录
日志信息里面清楚的记录了Tomcat服务器的运行情况,如果因为8080端口被占用而无法正常启动,就会记录如图1.11所示的异常信息,此时我们需要修改Tomcat的默认端口为自定义端口号。
Tomcat服务器端口的配置
Tomcat的所有配置文件都放在conf文件夹之中,里面的server.xml文件是Tomcat配置的核心文件。如果想修改Tomcat服务器的启动端口,则可以在server.xml配置文件中的Connector节点进行的端口修改。
例如:将Tomcat服务器的启动端口由默认的8080改成8081端口。
Tomcat服务器启动端口默认配置:
将Tomcat服务器启动端口修改成8081端口:
这样就把原来默认Tomcat默认的的8080端口改成了8081端口了,需要注意的是,一旦服务器中的*.xml配置文件改变了,则Tomcat服务器就必须重新启动,重新启动之后将重新读取新的配置信息。
Tomcat的目录结构
Tomcat服务器文件解压缩成功后,将会出现7个文件夹。Tomcat目录下的文件结构如下图1.12所示。
图1.12 Tomcat服务器目录结构
其中每个文件夹的作用如下:
● bin文件夹保存的是Tomcat启动与监控Tomcat的命令文件。
● conf文件夹保存的是Tomcat的配置文件。
● lib文件夹保存的是Web应用程序能访问的JAR包文件。
● logs文件夹保存的是Tomcat的日志文件。
● temp文件夹保存的是Tomcat的临时文件。
● webapps文件夹是Tomcat默认的Web应用程序发布目录。
● work保存各种由JSP文件生成的Servlet文件。
在Eclipse中配置Tomcat服务器
我们可以在Eclipse中配置一个Tomcat服务器,这样我们编写的代码就可以通过Eclipse中的Tomcat服务器来进行测试了。
1)首先打开Eclipse,如图1.13所示,选择并打开JavaEE视图。
图1.13 打开Eclipse中的JavaEE视图
2)选择Servers透视图,在Servers透视图中点击No servers are available.Click this link to create a new server...新建一个服务器。如图1.14所示。
图1.14 Server透视图
注意,Eclipse在使用中界面可能会发生改变,某些透视图会被关闭,如果找不到servers透视图或其他界面,可以按照如图1.15所示的方法恢复初始界面设置。
图1.15 恢复Eclipse初始界面
3)在弹出的对话框中找到Apache—Tomcat v8.5 Server(因为我们下载的是Tomcat8.5版本,如果下载的是Tomcat8.0版本请选择Tomcat v8.0 Server),然后点击Next。如图1.16所示。
4)点击Next按钮后,在新的对话框中设置Tomcat的安装路径和JRE运行时环境,然后点击Finish。如图1.17所示。
图1.16 New Server界面
图1.17 配置Tomcat服务器路径和JDK路径
5)再次回到Servers透视图,双击Tomcat v8.5 Server at localhost,然后在弹出的界面中对Tomcat服务器的一些参数进行修改。如图1.18所示。
6)测试Tomcat服务器,使用鼠标右击Tomcat v8.5 Server at localhost,在弹出的菜单中选择start选项启动服务器。如图1.19所示。
Tomcat启动时,会在Eclipse中的console透视图下滚动显示Tomcat启动时的进度。如图1.20所示。
图1.18 在Eclipse中对Tomcat进行配置
图1.19 在Eclipse中启动Tomcat服务器
图1.20 Eclipse控制台显示Tomcat启动成功
7)等待服务器启动完成后,打开浏览器,输入localhost:8080来检查服务器是否启动成功。如图1.21所示。
图1.21 Tomcat启动成功后在浏览器中访问http://localhost:8080
8)如图1.22所示,使用Eclipse修改Tomcat启动时端口号。
使用Eclipse修改Tomcat服务器端口号