Javaweb开发系列之二 《Tomcat容器》


Tomcat相关介绍


Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)。而O'Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)[1]的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。

Javaweb开发系列之二 《Tomcat容器》_第1张图片

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,直接解压本地

Javaweb开发系列之二 《Tomcat容器》_第2张图片Tomcat软件目录

1.2、双击运行startup.bat或startup.sh

Javaweb开发系列之二 《Tomcat容器》_第3张图片

1.3、在任意浏览器中输入http://localhost:8080/进行测试,会弹出Tomcat的欢迎界面

Javaweb开发系列之二 《Tomcat容器》_第4张图片

表示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页面运行过程中产生的临时文件。

如图标识

Javaweb开发系列之二 《Tomcat容器》_第5张图片

3、Tomcat web应用目录层次结构

一般会作为Javaweb规范,当然该规范不作为强制性约束,只是需要额外多余的工作需要做,建议使用规范操作。

|- WebRoot: 根目录。一个web应用必须有一个根目录。

          |- 静态资源:  html+css+javascript+images+xml

          |-WEB-INF: 目录。名称是固定写法。

                 |-classes: (可选) 目录。名称是固定写法。存放class字节码

                 |-lib: (可选)目录。名称是固定写法。存放jar包。不能有子目录,全部jar包放在根目录下。

                 |-web.xml: 文件。web应用的配置文件。

如图标识

Javaweb开发系列之二 《Tomcat容器》_第6张图片

注意:

    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\

Javaweb开发系列之二 《Tomcat容器》_第7张图片

只要在setclasspath.bat批处理文件第一次使用JAVA_HOME环境变量之前的任何地方,
将JAVA_HOME环境变量设置为JDK的主目录,就可以使用startup.bat文件启动Tomcat了。

4.2 端口占用

原因:Tomcat默认使用的端口为8080,但其他程序有可能也使用了8080端口,从而导致了端口占用致使Tomcat启动失败。

解决方案:

1)把占用端口的软件停止掉:

使用netstat -aon|findstr "8080"命令查找进程,找出PID,如图所示PID=11320

Javaweb开发系列之二 《Tomcat容器》_第8张图片

使用命令taskkill /pid 11320杀掉进程

Javaweb开发系列之二 《Tomcat容器》_第9张图片

注意:有时候一个端口可能被多个进程所占用,这是可以使用netstat -aon|findstr "8080"来查找进程列表,然后使用命令
taskkill /pid PID1 /pid PID2 ... /pid PIDn杀掉多个进程

2)改变tomcat服务器启动端口

寻找配置文件%tomcat%/conf/server.xml

Javaweb开发系列之二 《Tomcat容器》_第10张图片

修改端口号,修改为8081(不是强制设置为8081,只要修改为不被占用的端口号即可)

Javaweb开发系列之二 《Tomcat容器》_第11张图片

 代码如下


保存配置文件后,重启Tomcat即可。

4.3 CATALINA_HOME环境变量

原因:tomcat在启动后会通过CATALINA_HOME环境变量加装tomcat的根目录下的文件(例如conf、webapps),会产生一系列的巧合性问题,详见 https://blog.csdn.net/dgxin_605/article/details/81091228

解决方案:删除Tomcat环境变量的配置

注意:安装版的tomcat会自动设置CATALINA_HOME环境变量

 

本文为原创博客,转载请说明出处,感谢!!

你可能感兴趣的:(Javaweb开发)