Tomcat相关介绍
Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)。而O'Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)[1]的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。
Tomcat官网站点: http://jakarta.apache.org/ 或 http://jakarta.apache.org/
包含以下几个版本
- tar.gz文件是Linux操作系统下的安装版本
- exe文件是Windows系统下的安装版本
- zip文件是Windows系统下的压缩版本
Tomcat使用和相关配置
1、Tomcat启动和测试
1.1、使用免安装版本软件tomcat-7.0.85-windows-x64.zip,直接解压本地
Tomcat软件目录1.2、双击运行startup.bat或startup.sh
1.3、在任意浏览器中输入http://localhost:8080/进行测试,会弹出Tomcat的欢迎界面
表示Tomcat启动完成
1.4、找到%tomcat%/bin/shutdown.bat,双击,即可完成关闭操作。
1.5、对于URL(http://localhost:8080/myBlogs/test.html) 详细说明
http://localhost:8080/myBlogs/test.html叫做URL,即统一资源定位符。用于定位基于http协议的资源。
- http:// 代表是一种协议,即http协议。执行流程: 在本地找hosts文件,如果找不到,联网找网络运营商的DNS服务器。现在还有一种流行的安全性协议https,全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
- localhost 代表域名(Domain Name)。是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。
本地域名 (localhost:)和127.0.0.1 :对应,外地域名(www.wikipedia.org:)和IP地址208.80.152.2:相对应
- 8080 代表端口号在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设备的接口,如RJ-45端口、SC端口等等。逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口进行了编号。每个程序运行都对应一个端口号,检测端口号可以使用软件cports(我放在下https://download.csdn.net/download/dgxin_605/10547652,有需要的同学可以下载)。
常用的端口号有:: tomcat: 8080; mysql:3306; oracle: 1521; FTP:21等
- myweb 代表web应用的根目录。相关问题本文会在以下篇幅逐一讲解。
- test.html 代表web资源,静态资源。
2、Tomcat服务器目录层次结构
- |-bin: 目录。存放tomcat操作命令。bat是window版本,sh是linux版本。
startup.bat : 后台在调用catalina.bat start
shutdown.bat : 后台在调用catalina.bat stop
- |-conf: 目录。存在tomcat服务器软件的配置文件。server.xml文件是核心配置文件。
- |-lib:目录。支撑tomcat软件运行的jar包。
- |-logs:目录。存在tomcat服务器运行过程中日志信息。
- |-temp: 目录。tomct的临时目录,存在临时文件。
- |-webapps: 目录。存在web应用的目录
- |-work: 目录。tomcat运行目录。存放jsp页面运行过程中产生的临时文件。
如图标识
3、Tomcat web应用目录层次结构
一般会作为Javaweb规范,当然该规范不作为强制性约束,只是需要额外多余的工作需要做,建议使用规范操作。
|- WebRoot: 根目录。一个web应用必须有一个根目录。
|- 静态资源: html+css+javascript+images+xml
|-WEB-INF: 目录。名称是固定写法。
|-classes: (可选) 目录。名称是固定写法。存放class字节码
|-lib: (可选)目录。名称是固定写法。存放jar包。不能有子目录,全部jar包放在根目录下。
|-web.xml: 文件。web应用的配置文件。
如图标识
注意:
1)开发web应用时,不同类型的文件有严格的存放规则,否则可能会使web应用无法访问,也会导致web服务器启动报错。
2)不做任何配置的情况下,WEB-INF目录下的文件不能直接通过浏览器访问。
3)在web.xml文件中进行配置,那么WEB-INF目录下的内容就可以被外部访问到!!!4、
4、Tomcat常见启动问题
4.1 闪退,双击startup.bat时候吗,dos界面会闪退
原因:在tomcat服务器启动时(运行startup命令),在本地环境变量中查找一个叫JAVA_HOME的环境变量。(tomcat用java开发,需要用jvm运行)
解决法案:在windows中设置环境变量中添加一个JAVA_HOME=D:\Soft_Development\Java\jdk1.8.0_121\
只要在setclasspath.bat批处理文件第一次使用JAVA_HOME环境变量之前的任何地方,
将JAVA_HOME环境变量设置为JDK的主目录,就可以使用startup.bat文件启动Tomcat了。
4.2 端口占用
原因:Tomcat默认使用的端口为8080,但其他程序有可能也使用了8080端口,从而导致了端口占用致使Tomcat启动失败。
解决方案:
1)把占用端口的软件停止掉:
使用netstat -aon|findstr "8080"命令查找进程,找出PID,如图所示PID=11320
使用命令taskkill /pid 11320杀掉进程
注意:有时候一个端口可能被多个进程所占用,这是可以使用netstat -aon|findstr "8080"来查找进程列表,然后使用命令 taskkill /pid PID1 /pid PID2 ... /pid PIDn杀掉多个进程
2)改变tomcat服务器启动端口
寻找配置文件%tomcat%/conf/server.xml
修改端口号,修改为8081(不是强制设置为8081,只要修改为不被占用的端口号即可)
代码如下
<!-- <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />-->
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
保存配置文件后,重启Tomcat即可。
4.3 CATALINA_HOME环境变量
原因:tomcat在启动后会通过CATALINA_HOME环境变量加装tomcat的根目录下的文件(例如conf、webapps),会产生一系列的巧合性问题,详见 https://blog.csdn.net/dgxin_605/article/details/81091228
解决方案:删除Tomcat环境变量的配置
注意:安装版的tomcat会自动设置CATALINA_HOME环境变量
本文为原创博客,转载请说明出处,感谢!!