【www.gdgbn.com--php应用】

Tomcat4.1.x以上中类的加载
快速开始
1.某一个特殊的web应用用到的类或者资源,应该把它解压缩放在这个web应用的web-inf/classes下,或者把jar文件放在这个web应用的web-inf/lib下
2.很多web应用公用的类或者资源,应该把它解压缩放在%CATALINA_HOME%/shared/classes下(如果是4.0.x则是%CATALINA_HOME%/classes),或者把jar文件放在%CATALINA_HOME%/shared/lib下(如果是4.0.x则是%CATALINA_HOME%/lib)
预览
象很多应用程序服务器一样,tomcat4.x安装了一种特殊的class loader(这个类继承了抽象类java.lang.ClassLoader),所以它允许容器的不同部分和应用程序访问相应的不同的资源。
在java2(jdk1.2以上)环境中,class loader被抽象成一个树型。当一个class loader被请求装载一个特殊的类或资源时,它把这个请求委派给自己的上一层,当上一层没有找到这个类或资源时,它才在自己的范围内查找并加载。Web 应用程序类的装载有细微的不同,但是主要的原理都是一样的。
当tomcat4启动时,它建立如下所示的树型关系。
Bootstrap |
System
|
Common
/
Catalina Shared
/
Webapp1 Webapp2 ...
详细解释
当tomcat初始化时,它建立了如上图所示的class loader结构。
Bootstrap
这个class loader 包含了基本的运行时的类,和一些扩展类(在%JAVA_HOME%/jre/lib/ext 目录下),这些类都由jvm自动加载。
System
这个class loader 通常用来初始化classpath环境变量的内容,所有的这些类对tomcat内在的类和所有的web应用程序是可见的。但是标准的tomcat4.x启动脚本(%CATALINA_HOME%/bin/catalina.sh 或者 %CATALINA_HOME%/bin/catalina.bat)忽略classpath,而丛下面的地方装载
1.%CATALINA_HOME%/bin/bootstrap.jar-包含了main()方法初始化tomcat4.x Server,而且class loader依靠它实现。
2.%JAVA_HOME%/lib/tools.jar-包含了javac 编译程序,它可以把jsp页面转换为servlet。
Common
这个class loader加载的类对tomcat内在的类和所有的web应用程序是可见的,通常web应用程序的类不应该放在这里。
解压后的类或资源放在%CATALINA_HOME%/common/classes 目录下,没有解压的类或资源的jar文件放在
%CATALINA_HOME%/commons/endorsed 和%CATALINA_HOME%/common/lib directories 目录下。这里默认的包含了如下资源和类:

本文来源:http://www.gdgbn.com/jiaocheng/5586/