[摘要]Common/\Catalina Shared / \Webapp1Webapp2 ... / / Jasper1Jasper2 ...说明:Bootstrap - 包含了JVM中的基本的类,Ja...
Common
/\
Catalina Shared
/ \
Webapp1Webapp2 ...
/ /
Jasper1Jasper2 ...
说明:
Bootstrap -
包含了JVM中的基本的类,$Java_home/jre/lib/ext/目录下的jar文件也算。当然有一些JVM做法不一样。
System - 系统环境变量中的Classpath
Common - 包括 $CATALINA_HOME/common/classes(解开后的文件), $CATALINA_HOME/common/lib(jar文件),请不要将web application所专用的文件放到这里来。
Catalina - 包括$CATALINA_HOME/server/classes,$CATALINA_HOME/server/lib(注意这里的Class是不能够被web应用访问的。这只是为了实现tomcat而需要的。)
Shared - 包括$CATALINA_HOME/classes, $CATALINA_HOME/lib
WebappX - 包括特定web应用目录下的 /WEB-INF/classes 和 /WEB-INF/lib (只能被该web应用所使用)
JasperX - 如果你的web应用使用了JSP,tomcat也为其创建了一个classloader,包括jsp编译器及需要的类。因为这个classloader是上一个classloader的child,所以在JSP编译器和编译过后的jsp文件中可以看到上面所有的class path。
注1:以上除特别说明,都表示可以被所有的web应用使用。
注2:一般来说会将解开来的class文件放到classes目录下,将jar,zip文件放到lib目录下。
关键词:Tomcat 4中的ClassLoader