预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Tomcat类加载机制 2010-10-2423:10:07|分类:HYPERLINK"http://zhaohe162.blog.163.com/blog/"\l"m=0&t=1&c=fks_084067087080085071084080086095087094083066082081095068"\o"Tomcat"Tomcat|标签:HYPERLINK"http://zhaohe162.blog.163.com/blog/"\l"m=0&t=3&c=tomcat"tomcatHYPERLINK"http://zhaohe162.blog.163.com/blog/"\l"m=0&t=3&c=加载"加载HYPERLINK"http://zhaohe162.blog.163.com/blog/"\l"m=0&t=3&c=jar"jar|字号大中小订阅 Tomcat中的类加载策略和JDK中的委托模型略有不同。TomcatServer在启动的时候将构造一个ClassLoader树,以保证模块的类库是私有的,ClassLoader结构如下:Bootstrap|System|Common/\CatalinaShared/......\webapp1webappN 各个类加载器的作用描述如下:1)BootstrapClassLoader:负责加载由虚拟机提供的基本运行时类和系统扩展目录($JAVA_HOME/jre/lib/ext)下的JAR包;2)SystemClassLoader:通常这个加载器用来加载CLASSPATH环境变量中指定的类,但在Tomcat5的标准启动脚本($CATALINA_HOME/bin/catalina.sh或%CATALINA_HOME%/bin/catalina.bat)中改变了它的行为,它只加载下面的类:$CATALINA_HOME/bin/bootstrap.jar//Containsthemain()methodthatisusedtoinitializetheTomcat5server,andtheclassloaderimplementationclassesitdependson.$JAVA_HOME/lib/tools.jar//Containsthe"javac"compilerusedtoconvertJSPpagesintoservletclasses.$CATALINA_HOME/bin/commons-logging-api.jar//JakartacommonsloggingAPI.$CATALINA_HOME/bin/commons-daemon.jar//JakartacommonsdaemonAPI.jmx.jar//TheJMX1.2implementation. CommonClassLoader:它负责加载Tomcat本身和所有的web应用都能看到的类。通常,应用的类不应该由他加载。 $CATALINA_HOME/common/classes,$CATALINA_HOME/commons/endorsed和$CATALINA_HOME/common/lib下的类都由这个加载器加载。缺省的,包括:ant.jar-ApacheAnt.commons-collection.jar//Jakartacommonscollection.commons-dbcp.jar//JakartacommonsDBCP,providingaJDBCconnectionpooltowebapplications.commons-el.jar//Jakartacommonsel,implementingtheexpressionlanguageusedbyJasper.commons-pool.jar//Jakartacommonspool.jasper-compiler.jar//TheJSP2.0compiler.jasper-runtime.jar//TheJSP2.0runtime.jsp-api.jar//TheJSP2.0API.naming-common.jar//TheJNDIimplementationusedbyTomcat5torepresentin-memorynamingcontexts.naming-factory.jar//TheJNDIimplementationusedbyTomcat5toresolvereferencestoenterpriseresources(EJB,connectionpools).naming-resources.jar//ThespecializedJNDInamingcontextimplementa