tomcat核心概念及应用

Tomcat 核心组件及配置文件解读


Java 2 EE 计数体系包含如 Serverlet , JSP , JMX 等等。

以OpenJDK为例,当前比较常用的有1.6.0、1.7.0、1.8.0等版本,当一台主机上有多个OpenJDK时,可使用 "alternatives" 命令设定默认使用的版本。

Java代码的运行:*.java(source code) --> javac --> *.class(bytecode)

JSP :Java Server Page> JSP Container : JSP + Servlet Container

基于jasper将静态输出的数据转为java代码进行输出,结果为servlet规范的代码

.jsp -->jasper--> .java --> javac --> .class --> jvm

tomcat 是JSP Container的开源实现,tomcat是 Java 2 EE 技术体系的不完整实现,tomcat在使用前需要部署Java环境。

JSP Container 技术的商业实现包括:WebSphere, WebLogic, Oc4j, Glassfish, Geronimo, JOnAS, JBoss等等

JSP Container 技术的开源实现包括:Tomcat, Jetty, Resin


Tomcat默认配置文件及结构框架:


html语言嵌入式风格


tomcat的配置文件:


server.xml:主配置文件

web.xml:每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置

context.xml:每个web都可以专用的配置文件,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置

tomcat-users.xml:用户认证的账号和密码文件


tomcat的主配置文件及各组件的框架结构详解


tomcat主配置文件的默认配置实例:




组件详解:每个组件都由一个Java“类”实现,这些组件大体可分为以下几个类型:


顶级组件:Server

一个Server可包含多个Service代表tomcat instance,即表现出的一个java进程;监听在8005端口,只接收“SHUTDOWN”。

各server监听的端口不能相同,因此,在同一物理主机启动多个实例时,需要修改其监听端口为不同的端口


服务类组件:Service


一个Service中仅能有一个Engine

一个Engine可对应多个Connector,但一个Connector仅能对应一个Engine用于实现将一个或多个connector组件关联至一个engine组件


连接器组件:http, https, ajp


负责接收请求,常见的有三类http/https/ajp;

进入tomcat的请求可分为两类:

1. standalone : 请求来自于客户端浏览器;

2. 由其它的web server反代:来自前端的反代服务器;

nginx --> http connector --> tomcat

httpd(proxy_http_module) --> http connector --> tomcat

httpd(proxy_ajp_module) --> ajp connector --> tomcat

Connector属性

port="8080"

protocol="HTTP/1.1"

connectionTimeout="20000"

address:监听的IP地址;默认为本机所有可用地址

maxThreads:最大并发连接数,默认为200

enableLookups:是否启用DNS查询功能

acceptCount:等待队列的最大长度


容器类:Engine, Host, Context

一个Engine中可包含多个Host,一个Host中可包含多个Context

Engine组件:Servlet实例,即servlet引擎,其内部可以一个或多个host组件来定义站点,通常需要通过defaultHost来定义默认的虚拟主机

Engine属性

name=" "

defaultHost="localhost"

jvmRoute=" "


Host组件:位于engine内部用于接收请求并进行相应处理的主机或虚拟主机


Host属性

1. appBase:此Host的webapps的默认存放目录(/var/lib/tomcat/webapps),指存放非归档的web应用程序的目录或归档的WAR文件目录路径;可以使用基于$CATALINA_BASE变量所定义的路径的相对路径

2. autoDeploy:在Tomcat处于运行状态时,将某webapp放置于appBase所定义的目录中时,是否自动将其部署至tomcat。

你可能感兴趣的:(tomcat)