<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    agapple

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      13 Posts :: 1 Stories :: 1 Comments :: 0 Trackbacks

    官方原文: http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html

    當Tomcat5啟動以后,它創建一系列類加載器。這些類加載器以父子關系組織在一起,父類加載器在子類加載器的上面:
    
    Bootstrap
     |
     System
     |
    Common
    /    \
    Catalina Shared
              /        \
     Webapp1 Webapp2 ...   ( tomact classloader類層次結構)

      Bootstrap - 這個類加載器可以加載Java虛擬機的運行時基礎類,以及在系統擴展目錄($JAVA_HOME/jre/lib/ext)中的所有Jar包中的類。
    
      System - 這個類加載器一般可以加載CLASSPATH環境變量的內容。所有加載的類對于Tomcat內部的類和web應用程序的都是可見的。盡管如此,標準的Tomcat5啟動腳本($CATALINA_HOME/bin/catalina.sh 或 %CATALINA_HOME%\bin\catalina.bat)會優先加載如下JAR包:
    $CATALINA_HOME/bin/bootstrap.jar - 包含Tomcat5 服務器初始化的main()方法,以及所需的類加載器的實現類。
    $JAVA_HOME/lib/tools.jar - 包括把JSP頁面編譯成Serlet類所需的"javac"編譯器.
    $CATALINA_HOME/bin/commons-logging-api.jar - Jakarta commons logging API.
    $CATALINA_HOME/bin/commons-daemon.jar - Jakarta commons daemon API.
    jmx.jar - The JMX 1.2 實現.
    Common - 這個類加載器所加載的類對于Tomcat和web應用程序均可見。$CATALINA_HOME/common/classes目錄下放置未打包的類和資源,commons/endorsed、commons/i18n、common/lib目錄下的Jar包中的類和資源都是這個類加載器的加載對象。tomact安裝后默認包括如下內容:
    commons-el.jar - Jakarta commons el, Jasper用的EL表達式實現
    jasper-compiler.jar - The JSP 2.0 編譯器.
    jasper-compiler-jdt.jar - The Eclipse JDT Java 編譯器.
    jasper-runtime.jar - The JSP 2.0 運行庫.
    jsp-api.jar - The JSP 2.0 API.
    naming-common.jar - Tomcat5的JNDI 實現,用于內存命名環境
    naming-factory.jar - Tomcat5的JNDI 實現,用于企業級資源引用(EJB, connection pools).
    naming-factory-dbcp.jar - Jakarta commons DBCP, 為Web應用程序提供JDBC連接池。這個類已經從默認的org.apache.commons包中移出。
    naming-java.jar - java命名空間處理器.
    naming-resources.jar - The specialized JNDI naming context implementation used to represent the static resources of a web application. This is not related to the support of the J2EE ENC, and cannot be removed.
    servlet-api.jar - The Servlet 2.4 API.
    tomcat-i18n-**.jar - Optional JARs containing resource bundles for other languages. As default bundles are also included in each individual JAR, they can be safely removed if no internationalization of messages is needed.
    Catalina - 這個類加載器主要加載Tomcat5自身所需要的類和資源。這些類和資源對于Web應用程序是完全不可見的。在$CATALINA_HOME/server/classes或者 /server/lib/ 。默認情況,包括個如下內容:
    catalina.jar - Tomcat5中Catalina Servlet容器的實現部分。
    catalina-ant.jar - 在管理web應用程序時要用倒的一些Ant任務。
    catalina-optional.jar - 一些Catalina可選組件。
    commons-modeler.jar - Tomcat通過JMX暴露其內部對象是用的一些MBean實現。
    servlets-xxxxx.jar - 這些類同內部的Servlet一起提供Tomcat的部分功能,它們都是獨立的,所以如果不需要相應的服務可以將其刪除?;蛘咚鼈兛梢詮膶儆谔囟ǖ陌踩芾砥?。
    tomcat-coyote.jar - Coyote API.。
    tomcat-http.jar - 標準的Java HTTP/1.1 連接器.。
    tomcat-ajp.jar - AJP web 服務器的連接器,一般用于Apache,iPlanet iAS和 iWS.。
    tomcat-util.jar - Tomcat連接器需要的工具類。
    Shared - 這個類加載器用于把一些類和資源共享給所有的web應用程序??煞胖迷?CATALINA_BASE/shared/classes或者 /shared/lib。
    
    WebappX - 系統會為部署在一個Tomcat實例中的每個應用程序創建一個這樣的類加載器,加載web應用程序包的/WEB-INF/classes 和 /WEB-INF/lib 目錄下的所有Jar包中的類和資源。這些類和資源僅對這個應用程序可見。
    
    就像上面所描述的,web應用程序的類加載的加載流程與默認的Java 2的類記載托管模型是不一樣的。當有一個請求需要應用程序的WebappX 類加載器加載一個類的時候,這個類加載器是首先到自己的倉庫中查找,而不是先交給上面的類加載器查找。注意:JRE的基礎類是不能被覆蓋的。對于其他一些類(如J2SE 1.4+中的XML解析器組件),可以使用J2SE1.4的簽名特性。最后任何包括servlet API類的Jar包會被忽略。Tomcat5中的其他的類加載器使用正常托管模式。
    


    最后總結一下。

    common :  tomact server 和 webapp 共享
    shared : webapp 共享
    server :  tomact server 共享
    bin :   tomact 服務初始化

    在一個web應用程序中,類和資源的加載順序是這樣: 

    # JVM啟動
    Bootstrap classes of your JVM                         

    # tomact服務啟動
    System class loader classses (described above)   

    # web 服務啟動
    /WEB-INF/classes                                          
    /WEB-INF/lib/*.jar   
    
    # 加載tomact和webapp 共享common包
    $CATALINA_HOME/common/classes
    $CATALINA_HOME/common/endorsed/*.jar
    $CATALINA_HOME/common/i18n/*.jar
    $CATALINA_HOME/common/lib/*.jar 
      
    # 加載webapp共享包
    $CATALINA_BASE/shared/classes
    $CATALINA_BASE/shared/lib/*.jar

     



     



    Blog : http://agapple.javaeye.com/  歡迎訪問
    posted on 2008-10-29 17:45 agapple 閱讀(425) 評論(0)  編輯  收藏 所屬分類: java 、服務器
    主站蜘蛛池模板: 国产亚洲精品免费| 亚洲成AV人片在线观看ww| 免费精品国产日韩热久久| 久久WWW免费人成一看片| 999任你躁在线精品免费不卡| 东方aⅴ免费观看久久av| 中文字幕无码免费久久| 东方aⅴ免费观看久久av| 久久久久久久99精品免费| 99视频有精品视频免费观看| 久久精品无码专区免费东京热| 一区二区三区四区免费视频 | 黄 色一级 成 人网站免费| 一个人看的免费高清视频日本| 国产乱子伦精品免费视频| GOGOGO免费观看国语| 久久精品国产大片免费观看| 日韩人妻无码精品久久免费一| 在线成人爽a毛片免费软件| 性生交片免费无码看人| 精品久久久久久久免费加勒比| 免费吃奶摸下激烈视频| 成人午夜亚洲精品无码网站| 国产亚洲综合成人91精品| 91亚洲国产成人久久精品网站| 亚洲AV成人噜噜无码网站| 亚洲欧洲国产综合AV无码久久| 美女扒开屁股让男人桶爽免费| 一个人看www免费高清字幕| 久久精品国产大片免费观看| 无码日韩人妻av一区免费| 国产免费观看a大片的网站| 中文字幕亚洲激情| 久久亚洲精品成人无码网站| 2019亚洲午夜无码天堂| 全黄A免费一级毛片| 无码精品国产一区二区三区免费| 114一级毛片免费| 免费人成激情视频| 久久精品九九亚洲精品| 亚洲av永久中文无码精品综合 |