tomcat工作原理及目录文件介绍

栏目: 服务器 · 发布时间: 5年前

tomcat 工作原理及目录文件介绍

1 tomcat 背景

自从 JSP 发布之后,推出了各式各样的 JSP 引擎。 Apache Group 在完成 GNUJSP1.0 的开发以后,开始考虑在 SUN JSWDK 基础上开发一个可以直接提供 Web 服务的 JSP 服务器,当然同时也支持 Servlet, 这样 tomcat 就诞生了。 tomcat jakarta 项目中的一个重要的子项目,其被 JavaWorld 杂志的编辑选为 2001 年度最具创新的 java 产品,同时它又是 sun 公司官方推荐的 servlet jsp 容器,因此其越来越多的受到软件公司和开发人员的喜爱。 servlet jsp 的最新规范都可以在 tomcat 的新版本中得到实现。其次, tomcat 是完全免费的软件,任何人都可以从互联网上自由地下载。 tomcat Apache 的组合相当完美。

2 tomcat Server 处理一个 http 请求的过程

假设来自客户的请求为: http://localhost:8080/wsota/wsota_index.jsp

1 、请求被发送到本机端口 8080 ,被在那里侦听的 CoyoteHTTP/1.1 Connector 获得

2 Connector 把该请求交给它所在的 Service Engine 来处理,并等待来自 Engine 的回应

3 Engine 获得请求 localhost/wsota/wsota_index.jsp ,匹配它所拥有的所有虚拟主机 Host

4 Engine 匹配到名为 localhost Host (即使匹配不到也把请求交给该 Host 处理,因为该 Host 被定义为该 Engine 的默认主机)

5 localhost Host 获得请求 /wsota/wsota_index.jsp ,匹配它所拥有的所有 Context

6 Host 匹配到路径为 /wsota Context (如果匹配不到就把该请求交给路径名为 "" Context 去处理)

7 path="/wsota" Context 获得请求 /wsota_index.jsp ,在它的 mapping table 中寻找对应的 servlet

8 Context 匹配到 URLPATTERN *.jsp servlet ,对应于 JspServlet

9 、构造 HttpServletRequest 对象和 HttpServletResponse 对象,作为参数调用 JspServlet doGet doPost 方法

10 Context 把执行完了之后的 HttpServletResponse 对象返回给 Host

11 Host HttpServletResponse 对象返回给 Engine

12 Engine HttpServletResponse 对象返回给 Connector

13 Connector HttpServletResponse 对象返回给客户 browser

3 tomcat 目录详细解析

3.1 bin 目录

bin 目录主要用来存放 tomcat 的命令,很多环境变量也在此处设置。以 .sh 结尾的代表 Linux 下的命令;以 .bat 结尾的代表 Windows 下的命令。其中 startup.bat 代表 windows 系统下启动 tomcat 的命令; shutdown.bat 代表 Windows 系统下关闭 tomcat 的命令。同理 startup.sh 代表 Linux 下的启动 tomcat 的命令; shutdown.sh 代表 linux 下关闭 tomcat 的命令。详细介绍如下所示。

bin 目录中的脚本说明

文件名称

文件作用

catalina.sh

tomcat 主要脚本,用于启动和关闭 tomcat 服务器

startup.sh

启动运行 tomcat 实例,相当于 catalina.sh   start

shutdown.sh

停止 tomcat 实例的运行,相当于 catalina.sh stop

daemon.sh

tomcat 服务的启动脚本,可以复制到 /etc/init 下使用

catalina-tasks.xml

定义 tomcat 载入的库文件,类文件

version.sh

查看当前 tomcat 的版本信息

configtest.sh

校验 tomcat 配置文件 server.xml 的格式、内容等是否合法、正确

setclasspath.sh

catalina.sh 依赖这个脚本来设置 tomcat classpath 等环境变量

digest.sh

用于生成加密过的 tomcat 用户密码

tool-wrapper.sh

一般和 digest 脚本结合使用

bootstrap.jar

tomcat 启动时所依赖的一个类,在启动 tomcat 时会发现 Using CLASSPATH: 是加载的这个类

commons-daemon.jar

jsvc 工具所依赖的 java

commons-daemon-native.tar.gz

jsvc 工具,可以使 tomcat 以守护进程方式运行,需单独编译安装

tomcat-juli.jar

是一款在使用 tomcat 开发时十分关键的一款 jar

tomcat-native.tar.gz

使 tomcat 可以使用 apache apr 运行库,以增强 tomcat 的性能需单独编译安装

3.2 conf 目录

conf 目录主要存放 tomcat 服务器全局配置的各种文件,详见以下说明。

conf 目录中配置文件说明

catalina.policy

tomcat 安全机制的配置文件,默认情况下 tomcat   是非安全模式运行的,只有当 tomcat -security 命令行参数启动时这个文件才会被使用,该文件可以配置 tomcat 对文件系统中目录或文件的读、写执行等权限,及对一些内存, session 等的管理权限

catalina.properties

catalina.properties Catalina 的配置文件,主要有安全设置、类加载设置、不需要扫描的类设置、字符缓存设置四大块。配置 tomcat classpath

context.xml

tomcat 的默认 context 容器,可被所有的 web 应用程序使用 . 这个文件默认地可以设置到何处访问各 web 应用程序中的 web.xml 文件。 context.xml tomcat 6.0 时从 server.xml 中分离出来,主要用于项目部署的配置。

server.xml

tomcat 中最重要的配置文件 ,也是最常用的一个, 用于对整个容器进行相关的配置, 解析器用这个文件在启动时根据规范 " 创建 " 容器

web.xml

tomcat 的应用程序的部署描述符文件,是所有 Web 项目的缺省配置文件。

tomcat-users.xml

tomcat 的角色 ( 授权用户 ) 配置文件,用于访问 tomcat 管理应用程序时的安全性设置,用 server.xml 中引用的默认的用户数据库域 (UserDatabase Realm) 使用它,所有的凭据都是默认被注释的。

tomcat-users.xsd

定义了 tomcat-users.xml 所使用到的标签

logging.properties

tomcat 的日志配置文件,用于配置 tomcat 的日志输出方式和日志级别。

jaspic-providers.xml

tomcat 实现了 JASPIC 1.1   Maintenance Release B 标准,并通过这个配置文件集成第三方 JASPIC 身份验证

jaspic-providers.xsd

定义了 jaspic-providers.xml 所使用到的标签

3.3 lib 目录

lib 目录下主要存放 tomcat 服务器所需要的所有 Jar 包。我们在连接数据库时常常烦恼每创建一个项目就要引入一个对应的 oracle Jar 包或 MySQL Jar 。但是如果你把这两个 Jar 包放在此目录下,就可以引入一次,以后再创建项目时不需要每次都引入 Jar 包。

3.4 logs 目录

logs 目录用来存放 tomcat 在运行过程中产生的日志文件,非常重要的是在控制台输出的日志。(清空不会对 tomcat 运行带来影响) windows 环境中,控制台的输出日志在 catalina.xxxx-xx-xx.log 文件中。在 linux 环境中,控制台的输出日志在 catalina.out 文件中

3.5 temp 目录

temp 文件夹用于存放 tomcat 在运行过程中产生的 临时文件 temp 文件夹可以被清空,但是不能随意删除,否则会有未知错误发生。

3.6 webapps 目录

webapps 目录是 tomcat 默认存放应用程序的目录,好比 apache 的默认网页存放路径是 /var/www/html 一样,当 tomcat 启动时会去加载 webapps 目录下的应用程序。可以以文件夹、 war 包、 jar 包的形式发布应用。当然,你也可以把应用程序放置在磁盘的任意位置,在配置文件中映射好就行。该目录中介绍如下

webapps 目录介绍

docs

tomcat 文档存放目录

examples

tomcat 自带的一个独立的 web 应用程序例子存放位置

host-manager

tomcat 的主机管理应用程序存放位置

host-manager 目录中文件介绍

META-INF

整个应用程序的入口,用来描述 jar 文件的信息

context.xml

当前应用程序的 context 容器配置,它会覆盖 tomcat/conf/context.xml 中的配置

WEB-INF

用于存放当前应用程序的私有资源

images

存放应用程序相关图片文件

index.jsp

应用程序的网页文件

manager.xml

应用程序的管理配置文件

manager

tomcat 的管理应用程序

ROOT

tomcat 的应用程序的根,如果应用程序部署在 ROOT 中,则可直接通过 http://ip:port 访问到

3.7 work 目录

work 目录用于存放 JSP 应用程序在部署时编译后产生的 class 文件,清空 work 目录,然后重启 tomcat ,可以达到清除缓存的作用。

3.8 LICENSE 文件

LICENSE 文件是 tomcat 开源许可证文件。

3.9 NOTICE 文件

NOTICE 文件是 tomcat 说明文件。

3.10 RELEASE-NOTES 文件

RELEASE-NOTES 文件是 tomcat 版本说明文件。

3.11 RUNNING.txt 文件

RUNNING.txt 文件是 tomcat 帮助文件(使用指南)。

4 catalina.sh | catalina.bat 脚本文件使用方法

语法格式: catalina.sh 选项

例如: catalina.sh start # 启动 tomcat

catalina.sh 脚本可用选项如下 :

catalina.sh 脚本选项及说明

选项名称

选项作用

debug

debug 模式启动

debug -security

启用 catalina.policy 文件

jpda start

jpda(Java Platform Debugger Architecture) 调试器的模式启动

run

即使是在 linux , 也不会将输出重定向到日志文件 , 就像和 windows ( 那个一直开着的黑窗口 ) 一样的效果

start

启动 tomcat

stop n

停止 tomcat, 最多有 n 秒的延迟来处理释放资源等的操作

stop

相当于 stop 5

stop n -force

停止 tomcat, 最多 n 秒延迟 ,n 秒之后会强制 kill tomcat

stop -force

相当于 stop 5 --force

configtest

检测配置文件 ${catalina.home}/conf/server.xml 语法

version

tomcat 版本信息

5 tomcat 环境变量说明

tomcat 环境变量说明

环境变量名称

环境变量说明

CATALINA_HOME

tomcat 安装目录

CATALINA_OPTS

一般是传递JVM参数使用的,比如-Xmx256M

CATALINA_TMPDIR

tomcat 临时文件目录

JAVA_HOME

JDK 安装目录

JRE_HOME

JRE 安装路径

JAVA_OPTS

传递JVM参数使用的,比如-Xmx256M

JPDA_TRANSPORT

JPDA 调试器使用的传输协议

JPDA_ADDRESS

制定和catalina.sh jpda start 一起使用的jpda地址

JSSE_HOME

指定用于https使用的Java Secure SocketsExtension的位置

CATALINA_PID

进程描述符位置


以上所述就是小编给大家介绍的《tomcat工作原理及目录文件介绍》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

引爆流行

引爆流行

[美] 马尔科姆·格拉德威尔 / 钱清、覃爱冬 / 中信出版社 / 2002-7 / 18.00元

马尔科姆·格拉德威尔以社会上突如其来的流行风潮研究为切入点,从一个全新的角度探索了控制科学和营销模式。他认为,思想、行为、信息以及产品常常会像传染病爆发一样,迅速传播蔓延。正如一个病人就能引起一场全城流感;如果个别工作人员对顾客大打出手,或几位涂鸦爱好者管不住自己,也能在地铁里掀起一场犯罪浪潮;一位满意而归的顾客还能让新开张的餐馆座无虚席。这些现象均属“社会流行潮”,它爆发的那一刻,即达到临界水平......一起来看看 《引爆流行》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具