• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Tomcat4.1.x以上中類的加載

    發布: 2007-7-04 13:34 | 作者: admin | 來源:  網友評論 | 查看: 11次 | 進入軟件測試論壇討論

    領測軟件測試網 Tomcat4.1.x以上中類的加載
    快速開始
    1.某一個特殊的web應用用到的類或者資源,應該把它解壓縮放在這個web應用的web-inf/classes下,或者把jar文件放在這個web應用的web-inf/lib下
    2.很多web應用公用的類或者資源,應該把它解壓縮放在%CATALINA_HOME%/shared/classes下(如果是4.0.x則是%CATALINA_HOME%/classes),或者把jar文件放在%CATALINA_HOME%/shared/lib下(如果是4.0.x則是%CATALINA_HOME%/lib)
    預覽
    象很多應用程序服務器一樣,tomcat4.x安裝了一種特殊的class loader(這個類繼承了抽象類java.lang.ClassLoader),所以它允許容器的不同部分和應用程序訪問相應的不同的資源。
    在java2(jdk1.2以上)環境中,class loader被抽象成一個樹型。當一個class loader被請求裝載一個特殊的類或資源時,它把這個請求委派給自己的上一層,當上一層沒有找到這個類或資源時,它才在自己的范圍內查找并加載。Web 應用程序類的裝載有細微的不同,但是主要的原理都是一樣的。
    當tomcat4啟動時,它建立如下所示的樹型關系。
    Bootstrap
    |
    System
    |
    Common
    / \
    Catalina Shared
    / \
    Webapp1 Webapp2 ...
    詳細解釋
    當tomcat初始化時,它建立了如上圖所示的class loader結構。
    Bootstrap
    這個class loader 包含了基本的運行時的類,和一些擴展類(在%JAVA_HOME%/jre/lib/ext 目錄下),這些類都由jvm自動加載。
    System
    這個class loader 通常用來初始化classpath環境變量的內容,所有的這些類對tomcat內在的類和所有的web應用程序是可見的。但是標準的tomcat4.x啟動腳本(%CATALINA_HOME%/bin/catalina.sh 或者 %CATALINA_HOME%/bin/catalina.bat)忽略classpath,而叢下面的地方裝載
    1.%CATALINA_HOME%/bin/bootstrap.jar-包含了main()方法初始化tomcat4.x Server,而且class loader依靠它實現。
    2.%JAVA_HOME%/lib/tools.jar-包含了javac 編譯程序,它可以把jsp頁面轉換為servlet。
    Common
    這個class loader加載的類對tomcat內在的類和所有的web應用程序是可見的,通常web應用程序的類不應該放在這里。
    解壓后的類或資源放在%CATALINA_HOME%/common/classes 目錄下,沒有解壓的類或資源的jar文件放在
    %CATALINA_HOME%/commons/endorsed 和%CATALINA_HOME%/common/lib directories 目錄下。這里默認的包含了如下資源和類:
    1.jndi.jar - The Java Naming and Directory Interface API classes (這個包僅僅在jdk1.2才會被加載,jdk1.3或更高版本由jvm自動加載)。
    2.naming-common.jar – tomcat實現的jndi 描述內存中的命名上下文。
    3.naming-resources.jar – tomcat實現的特殊的jndi用來表現web應用程序的靜態資源。
    4.Servlet.jar – Servlet 和 jsp 用到的類。
    5.Xserces.jar - xml解析器默認情況下對tomcat內在的類和所有的web應用程序是可見的,如果要對一個特殊的web應用程序用特殊的xml解析器,可以把這個解析器放在/web-inf/lib中。
    Catalina
    這個class loader 為tomcat自己初始化所有的類和資源,這些類和資源對web應用程序來說都是不可見的,所有的解壓縮的類和資源都在%CATALINA_HOME%/server/classes目錄下,所有的壓縮的類和資源的jar文件都在%CATALINA_HOME%/server/lib目錄下。
    Shared
    這個類裝載器載入的類和資源能對所有的web應用程序可見(如果tomcat的內置類也要用到這些,則應該把這些放入到common裝載器中)。
    沒有壓縮的類和資源放在%CATALINA_HOME%/shared/classes目錄中,壓縮的類和資源的jar文件放在%CATALINA_HOME%/lib(為了和前面的版本兼容)或者%CATALINA_HOME%/shared/lib目錄中。通常包含了以下幾個默認包:
    1.jasper-compiler.jar - 編譯把jsp轉換成servlet并編譯他們所用到的類。
    2.jasper-runtime.jar - 運行由jsp編譯成servlet后的class要用到的環境。
    3.naming-factory.jar - 為web應用程序提供默認的jndi服務所要用到的類。
    WebappX
    Tomcat實例為每一個web應用程序實現一個webapp class loader,所有的解壓縮類和資源都放在這個web應用程序的/web-inf/classes目錄下,所有的類和資源的壓縮文件jar都放在這個web應用程序的/web-inf/lib目錄下,這些類和資源只對這個web應用程序是可見的,對其它的web應用程序都是不可見的。
    和前面不同的是,當一個web應用程序請求加載一個類時,它首先在這個web class loader范圍內加載,而不是和通用的規則一樣先從父class loader開始加載。
    因此web應用程序類的加載是按一下的順序的
    1.這個應用程序的/WEB-INF/classes
    2.這個應用程序的/WEB-INF/lib/*.jar
    3.JVM 的Bootstrap classes r
    4.System class loader classses (見上面的描述)
    5.%CATALINA_HOME%/common/classes
    6.%CATALINA_HOME%/common/endorsed/*.jar
    7.%CATALINA_HOME%/common/lib/*.jar
    8.%CATALINA_HOME%/shared/classes
    9.%CATALINA_HOME%/shared/lib/*.jar

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>