快速业务通道

Tomcat5启动流程与配置详解 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
erver。

⑥tomcat-jk2.jar 功能同上。

⑦tomcat-util.jar Tomcat工具类,可能被一些Connector用到。

⑧tomcat-warp.jar 用于Apache Server包。

- Shared -

载入所有WEB APP都可见的类,对TOMCAT不可见。 所有未打包的类在$CATALINA_HOME/shared/classes,所有jar包在$CATALINA_HOME /lib下。默认情况包含下面几个包:

①jasper-compiler.jar Jsp编译器,编译Jsp为Servlet。

②jasper-runtime.jar Jsp(已编译成Servlet)运行支持包。

③naming-factory.jar 支持Web App使用JNDI的封装包。

-WebAppX -

Web App ClassLoader,Web App被部署是在该ClassLoader被创建的时候。所有class都在WEB-INF/classes下,所有jar在WEB-INF/lib下。特别注意WEB APP自己的ClassLoader的实现与众不同:

它先试图从WEB APP自己的目录里载入,如果失败则请求父ClassLoader的代理。这样可以让不同的WEB APP之间的类载入互不干扰.另,Tomcat Server使用的是Catalina  ClassLoader,一般的Web App使用的是WebApp ClassLoader。

Tomcat5启动流程与配置详解(3)

时间:2011-03-11 51cto博客 zhangjunhd

2.2 下面总结Tomcat类加载过程

Bootstrap($JAVA_HOME/jre/lib/ext/*.jar)

System($CLASSPATH/*.class和指定的jar)

Common($CATALINA_HOME/common 下的classes,lib,endores三个子目录)

Catalina ($CATALINA_HOME/server/下的classes和lib目录仅对Tomcat可见)

Shared($CATALINA_HOME/shared/下的classes和lib目录以及$CATALINA_HOME/lib目录)

仅对Web应用程序可见,对Tomcat不可见WebApp($WEBAPP/Web-INF/*仅对该WEB应用可见classes/*.class lib/*.jar)

2.3加载类和资源的顺序为:

1、/Web-INF/classes

2、/Web-INF/lib/*.jar

3、Bootstrap

4、System

5、$CATALINA_HOME/common/classes

6、$CATALINA_HOME/common/endores/*.jar

7、$CATALINA_HOME/common/lib/*.jar

8、$CATALINA_HOME/shared/classes

9、$CATALINA_HOME/shared/lib/*.jar

3.server.xml

3.1配置tomcat组件的XML文件server.xml:

①顶层类元素[Top Level Elements]: 位于整个配置文件的顶层, 包括<Server>和<Service>。

②连接器类元素[Connectors ]: 客户和服务(容器类元素)间的通讯接口。接受客户请求,返回响应结果<Connector>。

③容器类元素[Containers]: 处理客户请求并且生成响应结果,包含3个:<Engine> <Host> <Context>。

④嵌套类元素[Nested Components]: 可以加入到容器中的元素,包括:<logger> <Valve><Realm>等。

Tomcat5启动流程与配置详解(4)

时间:2011-03-11 51cto博客 zhangjunhd

3.2下表为server.xml配置简介:

元素名 属性 解释
server port 指定一个端口,这个端口负责监听关闭tomcat的请求
shutdown 指定向端口发送的命令字符串
service name 指定service的名字
Connector (表示客户端和service之间的连接) port 指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求
minProcessors 服务器启动时创建的处理请求的线程数
maxProcessors 最大可以创建的处理请求的线程数
enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
connectionTimeout 指定超时的时间数(以毫秒为单位)
Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求) defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的
Context (表示一个web应用程序,通常为WAR文件,关于WAR的具体信息见servlet规范) docBase 应用程序的路径或者是WAR文件存放的路径
path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/****
reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序
host (表示一个虚拟主机) name 指定主机名
appBase 应用程序基本目录,即存放应用程序的目录
unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
Logger (表示日志,调试和错误信息) className 指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口
prefix 指定log文件的前缀
suffix 指定log文件的后缀
timestamp 如果为true,则log文件名中要加入时间,如下例:localhost_log.2007-03-04.txt
Realm (表示存放用户名,密码及role的数据库) className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口
Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样) className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息
directory 指定log文件存放的位置
pattern 有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。combined方式比common方式记录的值更多

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号