posts - 156,  comments - 601,  trackbacks - 0
          公告
          <2009年3月>
          22232425262728
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(45)

          隨筆分類(145)

          隨筆檔案(110)

          文章檔案(1)

          友情鏈接

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 679860
          • 排名 - 68

          最新評論

          閱讀排行榜

          評論排行榜

              Tomcat6 類裝載器的實現都是通過繼承于JDK中的 java.lang.ClassLoader類。
              包括Bootstrap,System,Common和Webapp這四種類加載器來實現不同目錄的類文件裝載。
              示例結構如下:
                Bootstrap
                    |
                 System
                    |
                 Common
                 /     \
            Webapp1   Webapp2 ...

            Bootstrap 類裝載器:
                它用于加載最基本的JVM運行環境類,裝載JDK目錄下類文件($JAVA_HOME/jre/lib/ext)
                使用它的目的是以防一些JVM提供商實現時,可能考慮某些原因會把部分的類文件通過不同的多個類加載加器加載,同時會
                屏蔽一些類加載讓應用層的類加載器訪問到。
              System 類裝載器:
                  該類裝載器根據JVM的CLASSPATH參數設置裝載類文件,該類裝載器對于Tomcat內部的程序和應用層的程序都是可見的。
                  注:目前tomcat5的啟動腳本($CATALINA_HOME/bin/catalina.sh 或 %CATALINA_HOME%\bin\catalina.bat),會把全局環境變量CLASSPATH忽略。
                      而且通過下面的兩個類庫來實現裝載設置:
                      * $CATALINA_HOME/bin/bootstrap.jar 包含一個main()方法來初始化tomcat6服務,并實例類裝器所依賴的類文件。
                      * $CATALINA_HOME/bin/tomcat-juli.jar 初始Jakarta commons logging API和 java.util.logging LogManager.
              Common 類裝載器
                  該類裝載器對于Tomcat內部的程序和應用層的程序都是可見的.
                  當然不太建議把應用層的類庫放到這里來加載。
                  所有$CATALINA_HOME/lib目錄下未壓縮的類文件,資源和壓縮后Jar/zip文件都會補該類裝載器加載。
                 
                  Tomcat6默認該目錄的類文件有:
                  * annotations-api.jar - JEE annotations classes.
                  * catalina.jar - Implementation of the Catalina servlet container portion of Tomcat6.
                  * catalina-ant.jar - Tomcat Catalina Ant tasks.
                  * catalina-ha.jar - High availability package.
                  * catalina-tribes.jar - Group communication package.
                  * el-api.jar - EL 2.1 API.
                  * jasper.jar - Jasper 2 Compiler and Runtime.
                  * jasper-el.jar - Jasper 2 EL implementation.
                  * jasper-jdt.jar - Eclipse JDT 3.2 Java compiler.
                  * jsp-api.jar - JSP 2.1 API.
                  * servlet-api.jar - Servlet 2.5 API.
                  * tomcat-coyote.jar - Tomcat connectors and utility classes.
                  * tomcat-dbcp.jar - package renamed database connection pool based on Commons DBCP.
                  * 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.

              Webapp 類裝載器:
                應用層的類裝載器,每個應用程序都會創建一個單獨的類裝載器。該類裝載器只能本應用程序中可見。
                所有/WEB-INF/classes目錄下未壓縮的類文件,資源文件都會補該類裝載器加載。
                所有/WEB-INF/lib目錄下壓縮后Jar/zip文件都會補該類裝載器加載。


              把各個類裝載器的定義整理出來后,Tomcat6服務器類裝載器執行的順序如下:
             
              * Bootstrap classes of your JVM
              * System class loader classses (described above)
              * /WEB-INF/classes of your web application
              * /WEB-INF/lib/*.jar of your web application
              * $CATALINA_HOME/lib
              * $CATALINA_HOME/lib/*.jar

          Good Luck!
          Yours Matthew!
          posted on 2008-09-27 19:24 x.matthew 閱讀(2863) 評論(2)  編輯  收藏 所屬分類: Application Server
          主站蜘蛛池模板: 密云县| 沁水县| 徐闻县| 五寨县| 谢通门县| 南郑县| 株洲市| 久治县| 商河县| 民勤县| 汝阳县| 贵德县| 怀远县| 疏附县| 高雄县| 锡林浩特市| 昂仁县| 民丰县| 天水市| 屏东县| 偏关县| 合阳县| 凤冈县| 衢州市| 静海县| 库车县| 盐边县| 扶余县| 策勒县| 汝城县| 徐州市| 渭南市| 柘荣县| 新源县| 吉林市| 三门县| 德阳市| 三都| 巴彦淖尔市| 田阳县| 班玛县|