Tomcat简介
- 什么是Tomcat
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。
2. Tomcat架构与术语
上图是Tomcat架构图,其中的术语解释如下
- Server: Server代表整个Servlet容器,是Tomcat的顶级元素,可以包含一个或多个services元素。
- Service: Service代表了一个或多个Connector元素,这些Connector共享一个Engine元素。
- Connector:Connector用来处理与客户端的通信,接受请求并返回结果。包含HTTP connector和AJP connector。
- Engine:Engine用来接收并处理从Connector发来的请求,并将处理结果返回Connector。一个Engine可以包含一个或多个Host。
- Host:Host代表一个虚拟主机,每个Host可以包含一个或多个Web应用。
- Context:Context代表了一个web应用,每个web应用基于一个war文件。
<Server> <Listener /> <GlobaNamingResources> </GlobaNamingResources <Service> <Connector /> <Engine> <Logger /> <Realm /> <host> <Logger /> <Context /> </host> </Engine> </Service> </Server>
上图为server.xml的结构,从中可以看出tomcat架构的层次关系
3. Tomcat 目录结构
|-- bin
| |-- bootstrap.jar tomcat启动时所依赖的一个类,在启动tomcat时会发现Using CLASSPATH: 是加载的这个类
| |-- catalina-tasks.xml 定义tomcat载入的库文件,类文件
| |-- catalina.bat
| |-- catalina.sh
tomcat单个实例在Linux平台上的启动脚本
| |-- commons-daemon-native.tar.gz
jsvc工具,可以使tomcat已守护进程方式运行,需单独编译安装
| |-- commons-daemon.jar jsvc工具所依赖的java类
| |-- configtest.bat
| |-- configtest.sh tomcat检查配置文件语法是否正确的Linux平台脚本
| |-- cpappend.bat
| |-- daemon.sh tomcat已守护进程方式运行时的,启动,停止脚本
| |-- digest.bat
| |-- digest.sh
| |-- setclasspath.bat
| |-- setclasspath.sh
| |-- shutdown.bat
| |-- shutdown.sh tomcat服务在Linux平台下关闭脚本
| |-- startup.bat
| |-- startup.sh tomcat服务在Linux平台下启动脚本
| |-- tomcat-juli.jar
| |-- tomcat-native.tar.gz 使tomcat可以使用apache的apr运行库,以增强tomcat的性能需单独编译安装
| |-- tool-wrapper.bat
| |-- tool-wrapper.sh
| |-- version.bat
| |-- version.sh 查看tomcat以及JVM的版本信息
|-- conf 顾名思义,配置文件目录
| |-- catalina.policy 配置tomcat对文件系统中目录或文件的读、写执行等权限,及对一些内存,session等的管理权限
| |-- catalina.properties 配置tomcat的classpath等
| |-- context.xml tomcat的默认context容器
| |-- logging.properties 配置tomcat的日志输出方式
| |-- server.xml tomcat的主配置文件
| |-- tomcat-users.xml tomcat的角色(授权用户)配置文件
| |-- web.xml tomcat的应用程序的部署描述符文件
|-- lib tomcat需要使用的java库文件
|-- logs 日志文件默认存放目录
|-- temp
|-- webapps tomcat默认存放应用程序的目录,好比apache的默认网页存放路径是/var/www/html一样
| |-- docs tomcat文档
| |-- examples
tomcat自带的一个独立的web应用程序例子
| |-- host-manager
tomcat的主机管理应用程序
| | |-- META-INF 整个应用程序的入口,用来描述jar文件的信息
| | | -- context.xml 当前应用程序的context容器配置,它会覆盖tomcat/conf/context.xml中的配置
| | |-- WEB-INF 用于存放当前应用程序的私有资源
| | | |-- classes 用于存放当前应用程序所需要的class文件
| | | |-- lib 用于存放当前应用程序锁需要的jar文件
| | | -- web.xml 当前应用程序的部署描述符文件,定义应用程序所要加载的serverlet类,以及该程序是如何部署的
| |-- manager
tomcat的管理应用程序
| |-- ROOT 指tomcat的应用程序的根,如果应用程序部署在ROOT中,则可直接通过http://ip:port
访问到
|-- work 用于存放JSP应用程序在部署时编译后产生的class文件