注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

tomcat中的类加载器  

2011-05-13 16:25:26|  分类: Tomcat |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

新浪微博:IT国子监(记得关注噢) http://weibo.com/itguozijian

当tomcat启动后,它产生了一套类装载器,这些类装载器被组织成如图所示的父子关系,

功能定义: tomcat中的类加载器 - 天涯草 - 天涯草
(1)这里的Bootstrap为java虚拟机内嵌的类加载器与ExtClassLoader的总称,负责加载java核心包中的类,以及存放在<JAVA_HOME>/jre/ext目录下的类

(2)system即系统类装载器,通常情况下就是appClassLoader,负责加载classpath环境变量的内容,而是将classpath环境变量重新设置为包含如下两个jar包:

       <CATALINA_HOME>/bin/bootstrap.jar

       <JAVA_HOME>/lib/tools.jar

(3)common 类装载器负责从<CATALINA_HOME>/common/classes中的.class类文件和<CATALINA_HOME>/common/lib中的jar包加载类,Common类装载器加载的类对tomcat服务器核心和每个web应用程序都可见,例如,Servlet.jar中包含的类既要被tomcat服务器内核使用,又要被每个web应用程序使用,所以,它需要放置在catalina_home/common/lib中

(4)cataline类装载器负责从<CATALINA_HOME>/server/classes中的.class类文件和<CATALINA_HOME>/server/lib中的jar包加载类。catalina类装载器加载的类只对tomcat服务器内核可见,对每个web应用程序完全不可见,所以,只想让tomcat服务器内核使用而不想让web应用程序使用的类应放在catalina类装载器的搜索目录中。对于运行Tomcat内核的线程,它的上下文类装载器就是Catalina类装载器。

(5)Shared类装载器负责从<CATALINA_HOME>/Share/classes中的.class类文件和<CATALINA_HOME/share/lib>中的Jar包加载类。Catalina类装载器加载的类只对所有的web应用程序可见,对tomcat服务器内核完全不可见。

(6)webappX类装载器负责从当前web应用程序的/web-inf/classes中的.class类文件和/web-inf/lib中的jar包加载类。webappx类装载器加载的类只对当前web应用程序可见,对其他web应用程序不可见。对于运行每个web应用程序的线程,他们的上下文类装载器就是他们各自的webappx类加载器。sun公司在servlet规范中建议webappx类装载只有自己加载不了时,才委托父级的类装载器进行加载,除了webappx类加载器外,servlet引擎中的其他类装载器都遵循标准的委托模式。但是,许多servlet引擎开发商认为这个建议没有什么意义,所以,他们并没有采纳servlet规范的建议,而是仍然按照标委托模式设计了他们的webappx类装载器.

新浪微博:IT国子监(记得关注噢) http://weibo.com/itguozijian
  评论这张
 
阅读(572)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016