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 好 ...
随机推荐
- fill函数和fill_n函数
fill_n函数的作用是:给你一个起始点,然后再给你一个数值count和val.把从起始点开始依次赋予count个元素val的值. 注意: 不能在没有元素的空容器上调用fill_n函数 列子: ...
- C#语言循环语句for嵌套
- onedrive实现excel在线编辑 online excel
1.首先用火狐浏览器或者谷歌浏览器登录 https://onedrive.live.com 2.注冊邮箱账户信息 3.在邮箱激活账户信息 4.登录进去.点击我的账户,点击左側文件树.点选上载,将文件上 ...
- 使用GitLab CI + Capistrano部署CakePHP应用程序
使用GitLab CI + Capistrano部署CakePHP应用程序 摘要:本文描述了如使用GitLab CI + Capistrano部署CakePHP应用程序. 目录 1. 问题2. 解决方 ...
- 在HDInsight中的Hadoop介绍
在HDInsight中的Hadoop介绍 概览 Azure的HDInsight是,部署和规定的Apache™Hadoop®集群在云中,提供用于管理,分析和大数据报告软件框架中的服务. 大数据 数据被描 ...
- WPF新手之如何将数据绑定到TreeView
看过许多例子,全是绑定到类的,没人说如何绑定到某个对象,偏偏我这个绝对的新手就是要绑定到一个对象,只能自己摸索了: 首先要将数据绑定到容器,有以下几个默认条件:①元数据必须包装在List或者Obser ...
- 区分虚拟机和machine simulator
1 虚拟机和machine simulator的不同 虚拟机是让多个操作系统同时共用现有的硬件架构,它不会模拟新的硬件架构.qemu这样的模拟器是模拟新的硬件架构,这个架构和host不同.
- XML-RPC JSON-RPC RPC是实现思路
XML-RPC - Wikipedia https://en.wikipedia.org/wiki/XML-RPC JSON-RPC - Wikipedia https://en.wikipedia. ...
- Provided Maven Coordinates must be in the form 'groupId:artifactId:version'.
[hadoop@hadoop1 bin]$ ./spark-shell --packages org.mongodb.spark:mongo-spark-connector_2.10-2.2.1 Ex ...
- a column-oriented DBMS
https://clickhouse.yandex/docs/en/introduction/what_is_clickhouse.html