IT兄弟连 Java Web教程 Tomcat
本文采用的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服务器启动端口默认配置:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
将Tomcat服务器启动端口修改成8081端口:
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
这样就把原来默认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服务器端口号
IT兄弟连 Java Web教程 Tomcat的更多相关文章
- IT兄弟连 Java Web教程 经典面试题
1.什么是B/S结构?什么是C/S结构? B/S是Browser/Server的缩写客户机上只要安装—个浏览器(Browser)加Netscape Navigator或Internet Explore ...
- IT兄弟连 Java Web教程 Web开发的相关知识
Web基本概念 Web,是环球信息网的缩写,也称作“WWW.W3”,英文全称为World Wide Web,中文名成为万维网,常简称为Web.Web分为Web客户端和Web服务器程序.Web可以让We ...
- IT兄弟连 Java Web教程 经典案例2
案例需求:写一个用户登录的html页面有账号和密码,并在登录的Servlet中获取登录的账号和密码,如果账号是abc密码是123则向浏览器输出登录成功,否则向浏览器输出登录失败. 案例实现: ● h ...
- IT兄弟连 Java Web教程 经典面试题2
1.Servlet的工作流程? Servlet是运行在Servlet容器中的,由Servlet容器来负责Servlet实例的查找.创建以及整个生命周期的管理,Servlet整个生命周期可以分为四个阶段 ...
- IT兄弟连 Java Web教程 Servlet的生命周期
JavaWeb应用的生命周期由Servlet容器来控制,而Servlet作为JavaWeb应用的最核心的组件,其生命周期也由Servlet容器来控制.Servlet的生命周期可以分为3个阶段:初始化阶 ...
- Java Web教程——检视阅读
Java Web教程--检视阅读 参考 java web入门--概念理解.名词解释 Java Web 教程--w3school 蓝本 JavaWeb学习总结(一)--JavaWeb开发入门 小猴子mo ...
- java web服务器tomcat介绍【转载】
机器矩阵2016-08-10 22:14 java程序员亲切地称他为tom猫,看到这只猫可以说明1 服务器部署成功了 ,2 网络是联通的. 到底这只猫是什么来头呢? tomcat是Apache基金会下 ...
- java java web及tomcat的使用
java web及tomcat的使用 一.什么是java web: 参考百度百科: http://baike.baidu.com/link?url=HnaWXFD7wFfPAlFMW02GV6r5p ...
- Web —— java web 项目 Tomcat 的配置 与 第一个web 项目创建
目录: 0.前言 1.Tomcat的配置 2.第一个Web 项目 0.前言 刚刚开始接触web开发,了解的也不多,在这里记录一下我的第一个web项目启动的过程.网上教程很多,使用的java IDE 好 ...
随机推荐
- 一览新的 Android Gradle 构建工具:新的 DSL 结构 和 Gradle 2.5
译者地址:[翻]一览新的 Android Gradle 构建工具:新的 DSL 结构 和 Gradle 2.5 原文:First Look at New Android Gradle Build To ...
- BZOJ 3732 Network 最小瓶颈路
题目大意:给出一个无向边,非常多询问,问x,y两地之间的最长路最短是多少. 思路:乍一看好像是二分啊. 的确这个题二分能够做.可是时间会慢非常多,有的题直接就T掉(NOIP2013货车运输). 事实上 ...
- HDU 2955 Robberies(01背包变形)
Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- HDU 1114 Piggy-Bank (完全背包)
Piggy-Bank Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- Maple入门使用教程
http://anony3721.blog.163.com/blog/static/51197420105173915247/ 命令的运行:1.每条命令必须用":"(运行后不显示) ...
- MVC框架的优缺点
MVC框架的优缺点 解析:M(Model)-模型,V(View)-视图.C(Controller)-控制器 作用:M-处理应用程序数据部分,V-处理数据展示的部分.C-处理用户交互,逻辑功能实现 1. ...
- 5. TCP客户/服务器程序示例
signal 信号是一种软件中断,异步发生,在进程运行的时候随时可能发生.信号可以: 由一个进程发给另一个进程,或发给自身 由内核发给某个进程 信号的action: signal handler,在信 ...
- 不能实现RadioButton默认选择
当用RadioButton时,希望在程序运行的时候默认一个选项: CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO1); //CheckRadioBut ...
- centos笔记-安装特定版本的mysql
centos6的yum默认安装的mysql是5.1版, 如果要安装5.6.16 版,有三个办法 1.yum方式, 这个方式的好处是通过yum安装卸载都很方便,坏处是版本无法详细制定,比如官方版本yum ...
- Lazy freeing of keys 对数据的额异步 同步操作 Redis 4.0 微信小程序
https://github.com/antirez/redis/blob/4.0-rc1/00-RELEASENOTES 数据缓存 · 小程序 https://developers.weixin.q ...