- 1
- 0
- 约2.73千字
- 约 3页
- 2017-08-09 发布于重庆
- 举报
类加载器与Tomcat.doc
类加载器与Tomcat
Tomcat基于标准的类加载,再加上自己的类加载器就形成了类加载器层次。下图详细描述了该层次结构。
从图中可以看到,它与直接委托模型有些不一样,Common类加载器代理Server类加载器,这意味着Web应用类加载器不能访问内部Server类,而Common类加载器可以。
Tomcat与System类加载器
Tomcat使用默认的System类加载器,但是Tomcat通过下面来设置CLASSPATH环境变量:
CATALINA_HOME/bin/bootstrap.jar
CATALINA_HOME/bin/tomcat-juli.jar
JAVA_HOME/lib/tools.jar
由于Tomcat在上面的文件列表中设置了CLASSPATH环境变量,因此在Tomcat生命周期内,system CLASSPATH变量会忽略。只要用户记住Tomcat拥有自己的classpath, 独立于System的Classpath,那么用户将增加的类放置在“Tomcat Common类加载器”一节中列出的目录中,就不会有任何问题。
Bootstrap.jar文件包含了Tomcat启动时所需的类。Tools.jar包含了javac编译器,用于在运行时编译JSP页面为class文件。Tomcat-juli.jar用于Tomcat的Bootstrap日志中。
Tomcat Common类加载器
下面讲述的是Tomcat的Common类加载器层次结构。Common类加载器加载这些Tomcat和所有Web应用所需要的类时,它从下面路径中加载表7-1中的类文件。
CATALINA_HOME/lib/
JAR文件 描述 annotation-api.jar 包含注释类 catalina.jar Tomcat6服务器中核心实现类 catalina-ant.jar Tomcat Catalina Ant任务 catalina-ha.jar High availability包 Catalina-tribes.jar Tomcat通信包 el-api.jar 表达式语言(EL)API jasper.jar Jasper2编译和运行,将JSP文件转换成servlets jasper-el.jar Jasper2表达式语言实现 jasper-jdt.jar Eclipse JDT3.2 Java编译器 jsp-api.jar JSP 2.1 API servlet-api.jar Servlet 2.5 API tomcat-coyote.jar Tomcat连接器和有用类的集合 tomcat-dbcp.jar 提供数据库链接池机制和其他对象链接池服务 tomcat-i18n-**.jar 可用的国际化JAR包
尽管开发人员可以引用其所有的API,但是不应允许他们在CATALINA_HOME/lib下放置自己的类和JAR文件。如果开发人员希望所有类和JAR文件对于所有Web应用程序都是可见的,那么应该把它们放置在Shared类加载器能够访问到的位置。注意这个不适用于第三方库,例如数据库驱动。因为Tomcat需要经常访问到这些类。
把自定义类放置在Common类加载器路径下,这是不提倡的,主要因为下面两个原因:
自定义类将会造成与Tomcat的兼容性问题。例如,如果用户将XML解析器放置在这个目录下,它会带来无法修复的程序问题;而将Servlet API的老版本入围在该目录下,也会带来同样的问题。
很容易忘记哪个类JAR文件属于开发人员,哪些属于tomcat自有的。因此维护是很棘手的。
Tomcat Web应用类加载器
每个Web应用都有自己的类加载器,它们分别在
CATALINA_HOME/webapps/[webapp]/WEB-INF/lib和classes目录下搜寻JAR文件和类文件,Web应用类加载器有些独特,主要在于以下两点:
每个Web应用都有自己的类加载器的实例,这意味着Web应用不能看到其他人的类文件。
Web应用类加载器不采用委托模式,取而代之的是,在请求转发到其他类加载器之前,它试图自己首先加载类。这些行为使得Web应用很容易地覆盖Shared和Common类加载器下的类。
应该注意的是,Web应用类加载器并不能覆盖掉Java基本类,这也是不可能的。下列是Web应用类加载器唯一例外的时候,它们通常采用委托模式:
Javax.*
Org.xml.sax.*
Org.w3c.dom.*
Org.apache.xerces.*
Org.apache.xalan.*
如果父类不能加载它们,则Web应用类加载器将自己试图加载它们。
类加载器顺序
为了回顾一下不同的Tomcat类加载器是如何一直协同
您可能关注的文档
最近下载
- 2025江汽集团“淮才相遇”入职培训测评试题 .pdf VIP
- 煤矿安全生产大数据监管预警应急平台建设方案 - 49页 - 2024年.pdf VIP
- 七年级下册数学第一单元(相交线与平行线)测试题.docx VIP
- 米家小米智能门锁 E30使用说明书.pdf
- 小学语文教学中动态生成资源与核心素养培养的实践研究教学研究课题报告.docx
- 非物质文化遗产 潮阳英歌 DB4405 T 315-2025.pdf VIP
- 高一英语下册Unit1单元同步测试题(含答案).pdf VIP
- 崂山绿茶销售现状分析.docx VIP
- 社区超市经营方案.ppt VIP
- 初中物理50个实验题专练(详解版).pdf VIP
原创力文档

文档评论(0)