


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Tomcat中的類(lèi)加載器與安全機(jī)、 Tomcat中的類(lèi)加載器與安全機(jī)、安全機(jī)類(lèi)加載Java中的類(lèi)遵循按需加載所謂類(lèi)加載器,就是?于加載Java類(lèi)到Java虛擬機(jī)中的組件,它負(fù)責(zé)讀取字節(jié)碼,并轉(zhuǎn)換java.lang.Class類(lèi)的?個(gè)實(shí)例,使字節(jié)碼.class?件得以運(yùn)??般類(lèi)加載器負(fù)責(zé)根據(jù)?個(gè)指定的類(lèi)找到對(duì)應(yīng)的字節(jié)碼,然后根據(jù)這些字節(jié)碼定義?個(gè)Java類(lèi)另外,它還可以加載資源,包括圖像?件和配置?類(lèi)加載器在實(shí)際使?中給我們帶來(lái)的好處是,它可以使Java類(lèi)動(dòng)態(tài)地加載到JVM中并運(yùn)?,即可在程運(yùn)?時(shí)再加載類(lèi),提供了很靈活的動(dòng)態(tài)加載?式啟動(dòng)類(lèi)加載器(BootstrapClassLoader):加載對(duì)象是Java核?庫(kù),把?些核?的Java類(lèi)加載 中,這個(gè)加載器使?原?代碼(C/C++)實(shí)現(xiàn),并不是繼承java.lang.ClassLoader,它是所其他類(lèi)加載器的最終?加載器,負(fù)責(zé)加載<JAVA_HOME>/jre/lib?錄下JVM指定的類(lèi)庫(kù)其實(shí)它屬于JVM整體的?部分,JVM?啟動(dòng)就將這些指定的類(lèi)加載到內(nèi)存中,避免以后過(guò)多的I/操作,?系統(tǒng)的運(yùn)?效率啟動(dòng)類(lèi)加載器?Java程序直接使?擴(kuò)展類(lèi)加載器(ExtensionClassLoader):加載的對(duì)象為Java的擴(kuò)展庫(kù),即加載 ?錄??的類(lèi)這個(gè)類(lèi)由啟動(dòng)類(lèi)加載器加載,但因?yàn)閱?dòng)類(lèi)加載器并?Java實(shí)現(xiàn),已經(jīng)脫離了Java體系,所以如果嘗試調(diào)?擴(kuò)展類(lèi)加載器的getParent()?法獲取?加載器會(huì)得到null然?,它的?類(lèi)加載器是啟動(dòng)類(lèi)加載器應(yīng)?程序類(lèi)加載器ClassLoader):亦叫系統(tǒng)類(lèi)加載器 ClassLoader),負(fù)責(zé)加載?戶(hù)類(lèi)路徑(CLASSPATH)指定的類(lèi)庫(kù),如果程序沒(méi)有??定義類(lèi)加載器,就默認(rèn)使?應(yīng)1程序類(lèi)加載 它也由啟動(dòng)類(lèi)加載器加程序類(lèi)加載 它也由啟動(dòng)類(lèi)加載器加載,但它的?加載類(lèi)被設(shè)置成了擴(kuò)展類(lèi)加載器如果要使?這加載器,可通過(guò)ClassLoader.getSystemClassLoader()獲取雙親委雙親委派模型會(huì)在類(lèi)加載器加載類(lèi)時(shí)?先委托給?類(lèi)加載器加載,除??類(lèi)加載器不能加載才??加載這種模型要求,除了頂層的啟動(dòng)類(lèi)加載器外,其他的類(lèi)加載器都要有??的?類(lèi)加載器假如有?個(gè)類(lèi)要加載進(jìn)來(lái),?個(gè)類(lèi)加載器并不會(huì)?上嘗試??將其加載,?是委派給?類(lèi)加載器,?類(lèi)加載器收到后?嘗試委派給其?類(lèi)加載器,以此類(lèi)推,直到委派給啟動(dòng)類(lèi)加載器,這樣?層?層往上委派只有當(dāng)?類(lèi)加載器反饋??沒(méi)法完成這個(gè)加載時(shí),?加載器才會(huì)嘗試??加載通過(guò)這個(gè)機(jī)制,保證了Java應(yīng)?所使?的都是同?個(gè)版本加載?個(gè)有破壞性Java核?庫(kù)的類(lèi),同時(shí)這個(gè)機(jī)制也保證了安全性設(shè)想如果應(yīng)?程序類(lèi)加載器想java.lang.System類(lèi),雙親委派模型會(huì)?層層向上委派,最終委派給啟動(dòng)類(lèi)加器,?啟動(dòng)類(lèi)加載器檢查到緩存中已經(jīng)有了這個(gè)類(lèi),并不會(huì)再加載這個(gè)有破壞性 類(lèi)另外,類(lèi)加載器還擁有全盤(pán)負(fù)責(zé)機(jī)制,即當(dāng)?個(gè)類(lèi)加載器加載?個(gè)類(lèi)時(shí),這個(gè)類(lèi)所依賴(lài)的有類(lèi)都由這個(gè)類(lèi)加載器加載,除?在程序中顯式地指定另外?個(gè)類(lèi)加載器加載引?的其他在Java中,我們?完全匹配類(lèi)名來(lái)標(biāo)識(shí)?個(gè)類(lèi),即?包名和類(lèi)名?在JVM中,?個(gè)類(lèi)由完全匹配類(lèi)名和?個(gè)類(lèi)加載器的實(shí)例ID作為唯?標(biāo)識(shí)也就是說(shuō),同?個(gè)虛擬機(jī)可以有兩個(gè)包名類(lèi)名都相同的類(lèi),只要它們由兩個(gè)不同的類(lèi)加載器加載當(dāng)我們?cè)贘ava中說(shuō)兩個(gè)類(lèi)是否相等時(shí),必須在針對(duì)同?個(gè)類(lèi)加載器加載的前提下才有意義,否則,就算是同樣的字節(jié)碼,由不同的類(lèi)加載器加載,這兩個(gè)類(lèi)也不是相等的這種特征為我們提供了隔離機(jī)制,在Tomcat服務(wù)器中它是?分有?的我們?cè)谑??定義類(lèi)加載去加載類(lèi)時(shí),我們需要指明該去哪些資源中進(jìn)?加載,所以JDK提供了URLClassLoader來(lái)?便我們使?,我們?cè)趧?chuàng)建URLClassLoader時(shí)需要傳??些URLs,然后在使?這個(gè)URLClassLoader加載類(lèi)時(shí)就會(huì)從這些資源中去加載Tomcat中?定義的類(lèi)加載 擁有不同的?定義類(lèi)加載器,以實(shí)現(xiàn)對(duì)各種資源庫(kù)的控制?般來(lái)說(shuō),Tomcat 主要?類(lèi)加載器解決以下4個(gè)問(wèn)題同?個(gè)Tomcat中,各個(gè)Web應(yīng)?之間各?使?的Java類(lèi)庫(kù)要互相隔離同?個(gè)Tomcat中,各個(gè)Web應(yīng)?之間可以提供共享的Java類(lèi)庫(kù)為了使Tomcat不受Web應(yīng)?的影響,應(yīng)該使服務(wù)器的類(lèi)庫(kù)與應(yīng)?程序的類(lèi)庫(kù)互相獨(dú)?Tomcat?持熱部署2在Tomcat中,最重要的?個(gè)類(lèi)加載器是Common類(lèi)加載器,它的在Tomcat中,最重要的?個(gè)類(lèi)加載器是Common類(lèi)加載器,它的?類(lèi)加載器是應(yīng)?程序類(lèi)加載器,負(fù)責(zé)加載$CATALINA_BASE/lib$CATALINA_HOME/lib兩個(gè)?錄下所有的.class?件與.jar?件Tomcat中?般會(huì)有多個(gè)WebApp類(lèi)加載器- ,每個(gè)類(lèi)加載器負(fù)責(zé)加載?個(gè)Web 它的?類(lèi)加載器是Common類(lèi)加載器由于每創(chuàng)建新Web應(yīng)?都有??的WebApp類(lèi)加載器,很好地使多WebApp類(lèi)加載器達(dá)到熱部署這種類(lèi)加載器結(jié)構(gòu)能有效Web應(yīng)?程序之間互相隔離且能通Tomcat不Web應(yīng)?程序影響?Common類(lèi)加載器的存在使多個(gè)Web應(yīng)?程序能夠互相共享類(lèi)庫(kù)Tomcat中類(lèi)加載器架安全機(jī)Tomcat中設(shè)置了了?些安全策略,默認(rèn)的策略?件為T(mén)om
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣州幼兒師范高等專(zhuān)科學(xué)校《俄羅斯電視新聞(2)》2023-2024學(xué)年第一學(xué)期期末試卷
- 第六章生物群落的組成與結(jié)構(gòu)
- 紡織行業(yè)安全事故
- 2025年云南省陸良縣八中高考數(shù)學(xué)試題二輪優(yōu)化提升專(zhuān)題訓(xùn)練含解析
- 2025年福建省重點(diǎn)中學(xué)高三下學(xué)期4月調(diào)研數(shù)學(xué)試題含解析
- 荊州理工職業(yè)學(xué)院《藏醫(yī)學(xué)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 開(kāi)題報(bào)告-鋸坯機(jī)主傳動(dòng)裝置設(shè)計(jì)
- 大學(xué)生創(chuàng)業(yè)之星路演
- 預(yù)防性侵幼兒園
- 防爆電氣基礎(chǔ)知識(shí)
- (完整版)海域使用權(quán)評(píng)估報(bào)告-
- 鋼結(jié)構(gòu)原理與設(shè)計(jì)概述課件
- PAC性格測(cè)試課件
- 成功八步課件
- “順豐杯”第三屆全國(guó)大學(xué)生物流設(shè)計(jì)大賽案例
- 群文閱讀指導(dǎo)課《人物描寫(xiě)一組臨死前的嚴(yán)監(jiān)生》課件
- (完整)交叉作業(yè)施工方案
- 辦公樓電氣設(shè)計(jì)方案說(shuō)明
- 工器具檢查及記錄表
- 密碼學(xué) 替換密碼
- 工程表層土利用方案
評(píng)論
0/150
提交評(píng)論