国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Pluto Portlet容器的體系結(jié)構(gòu)
1.pluto技術(shù)驗(yàn)證。
11 什么是pluto
Pluto是一個(gè)滿足Portlet API規(guī)范的Portlet容器的實(shí)現(xiàn),它為開發(fā)者提供了一個(gè)運(yùn)行portlets的工作平臺(tái)。然而,如果沒(méi)有一個(gè)驅(qū)動(dòng)器(driver),也就是 Portal,的支持的話,運(yùn)行和測(cè)試Portlet容器將非常之麻煩。Pluto本身也提供了一個(gè)簡(jiǎn)單的Portal模塊,該模塊僅僅是為了滿足 Portlet容器和JSR 168的需要而寫的。如果你需要一個(gè)成熟的Portal,請(qǐng)參考Jetspeed項(xiàng)目。Jetspeed項(xiàng)目關(guān)注的是Portal本身,而不是Portlet容器。
 
 
12 Portal的基本體系結(jié)構(gòu)。
 
 
Portal Web Application處理客戶的請(qǐng)求,從客戶的當(dāng)前頁(yè)中提取出portlets,然后調(diào)用portlet容器來(lái)獲得每一個(gè)portlet的內(nèi)容。 Portal通過(guò)Portlet容器的Invoker API來(lái)訪問(wèn)portlet容器。這些APIportlet容器的主要調(diào)用接口,它們?yōu)?/span>Portal提供了一些基于請(qǐng)求的方法來(lái)調(diào)用portlet。容器的使用者(Portal,譯者注)必須實(shí)現(xiàn)portlet容器的Container Provider SPIService Provider Interface)回調(diào)接口,來(lái)為portlet容器提供與Portal相關(guān)的信息。最后,portlet容器通過(guò)Portlet API調(diào)用所有的portlets。
 
 
 
1. 3 portal的基本體系結(jié)構(gòu)圖解。
 
 
 
 
2. portlet技術(shù)驗(yàn)證。
2. 1 portlet 容器。
Portlet容器是portlets的運(yùn)行時(shí)環(huán)境,也是每一個(gè)Portal的核心組件。Portlet容器需要獲取有關(guān)Portal本身的一些信息,還必須重用Portal的一些基本代碼。因此,Portlet容器可以保證自己與其它的Portal組件之間是完全分開的。也就是說(shuō),你可以把一個(gè)獨(dú)立的Portlet容器插入到任何一個(gè)Portal中去,只要它可以滿足Portlet容器的要求,比如實(shí)現(xiàn)了所有的SPI。
Portlet容器的Invoker API(也被稱為進(jìn)入點(diǎn))是Portlet容器的主要調(diào)用接口。這些API包含Portlet容器的生命周期控制方法(init(),destroy())和基于請(qǐng)求的調(diào)用方法(initPage(),performTitle(),portletService()等等)。由于Portlet容器最終是去調(diào)用一個(gè)portlet,故這些方法的簽名和Portlet API的主要portlet接口很類似,除了一個(gè) 須額外傳入的portletID。Portlet容器可以通過(guò)這個(gè)額外傳入的portlet ID參數(shù)來(lái)決定調(diào)用 哪一個(gè)portlet。
除了可以使用Invoker API來(lái)調(diào)用Portlet容器外,Portal還必須實(shí)現(xiàn)Portlet容器定義的SPI。因此,參考實(shí)現(xiàn)引入了“容器服務(wù)”的概念:容器服務(wù)用來(lái)定義一些能夠在容器中注冊(cè)的可插的組件,這些組件要么提供一些基本的功能,要么對(duì)容器進(jìn)行擴(kuò)展。Pluto參考實(shí)現(xiàn)定義了下面這些內(nèi)建的容器服務(wù)(前四個(gè)是運(yùn)行Portlet容器所必須實(shí)現(xiàn)的,而第五個(gè)則是可選的):
Information Provider(信息提供者):為Portlet容器提供關(guān)于Portal其框架的信息。通過(guò)該接口只能夠獲得一些已知的或存在Portal中的信息。這些信息包括帶導(dǎo)航狀態(tài)(navigational state)的URL生成、portlet上下文(portlet context)、 portlet模式(portlet mode)和窗口狀態(tài)(window state)控制。
Factory Manager(工廠管理者):定義了如何通過(guò)工廠獲得一個(gè)實(shí)現(xiàn)(一般的 Portal應(yīng)該已經(jīng)實(shí)現(xiàn)了這樣的接口)。
Log Service(日志服務(wù)):定義了輸出日志的方法(一般的Portal應(yīng)該已經(jīng)實(shí)現(xiàn)了這樣的接口)。
Config Service(配置服務(wù)):定義了如何獲得配置值(一般的Portal應(yīng)該已經(jīng)實(shí)現(xiàn)了這樣的接口)。
Property Manager(屬性管理者,可選):該服務(wù)讓Portal可以獲得JSR 168 規(guī)范中定義的屬性的值。
嚴(yán)格的說(shuō),Portlet Object Model(Portlet對(duì)象模型)也是一個(gè)SPI,但與其它的SPI相比, 它處在一個(gè)特殊的位置上。因此我們不把它看成是容器服務(wù)的一部分,因?yàn)樗幚硭械膒ortlet 對(duì)象,并包含了一些混雜的接口。
 
22 portlet容器的體系結(jié)構(gòu)。


 
 
23 portlet的部署。
Portlet容器是構(gòu)建在Servlet容器之上的,所以它可以重用Servlet容器的許多功能。為了達(dá)到這一點(diǎn),portlet容器必須把一些servlet的屬性注入到每一個(gè)portlet應(yīng)用的war文件中,如圖所示。Portlet組件的部署器將在原先的war文件中注入一個(gè)新的或者修改過(guò)的web.xml,再為每個(gè)portlet注入一個(gè)servlet包裹器,以此作為調(diào)用點(diǎn)。然后,portlet部署器將把這個(gè)修改過(guò)的war文件傳給應(yīng)用服務(wù)器的部署器,以此來(lái)把它部署到應(yīng)用服務(wù)器的系統(tǒng)中。當(dāng)一個(gè)portlet被調(diào)用時(shí),portlet容器將調(diào)用注入的servlet包裹器,把這作為被部署的portlet的 war文件的進(jìn)入點(diǎn)。
23 portlet的部署圖解。
 
 
 
3.Pluto和WSRP標(biāo)準(zhǔn)。
JSR168規(guī)范和Web Service for Remote Portlets(WSRP)標(biāo)準(zhǔn)有高度的一致性。這兩個(gè)同時(shí)出現(xiàn)的標(biāo)準(zhǔn)都發(fā)布了開放源碼的實(shí)現(xiàn),它們的實(shí)現(xiàn)都完成了在相應(yīng)的規(guī)范中定義的所有必要功能。這兩個(gè)標(biāo)準(zhǔn)都把能很好的互相協(xié)作作為它們共同的目標(biāo)。因此,WSRP portlets在portlet容器中既可以作為消費(fèi)者運(yùn)行,也可以作為生產(chǎn)者運(yùn)行。
Pluto項(xiàng)目必須支持在一個(gè)Portal中運(yùn)行多個(gè)portlet容器。因此,Pluto Portlet容器可以 被多次初始化。更重要的是,它可以以不同的方式運(yùn)行,每個(gè)portlet容器都使用一個(gè)不同的SPI 實(shí)現(xiàn)。
 
 
4總結(jié)
Pluto項(xiàng)目是Java Portlet規(guī)范的參考實(shí)現(xiàn)(Reference Implementation)。該規(guī)范目前 的版本是 JSR 168。
Portlets是一種運(yùn)行在portal環(huán)境下的對(duì)象,它們通過(guò)與Servlet API相似的Portlet API編寫。與servlets不同的是,portlets有很多不能做的事情,比如直接向?yàn)g覽器發(fā)送重定向應(yīng)答或錯(cuò)誤,比如轉(zhuǎn)發(fā)請(qǐng)求,比如往應(yīng)答的輸出流中寫入任意的markup標(biāo)簽,等等。這是因?yàn)?portlets是被portal webapplication所使用的對(duì)象,它們的行為不能干擾到portlet webapplication的工作。與servlets的另外一個(gè)區(qū)別是,portlets依賴一些portal所特有 的底層功能,諸如對(duì)userprofile信息的訪問(wèn),諸如存取持久層設(shè)定的標(biāo)準(zhǔn)接口,諸如獲取客戶信息,等等。一般而言,與servlets相比較,portlets以一種更加動(dòng)態(tài)的方式被管理。
Portlet容器為滿足Portlet API規(guī)范的portlets提供了運(yùn)行環(huán)境。Portlets可以在該環(huán)境中被初始化,被觸發(fā)和調(diào)用,以及最終被銷毀。和Servlet容器不同的是,Portlet容器不是作為一個(gè)獨(dú)立可運(yùn)行的容器來(lái)實(shí)現(xiàn)的,而是架設(shè)在Servlet容器之上的一個(gè)層,它重用了Servlet容器提 供的許多功能。
Pluto是一個(gè)滿足Portlet API規(guī)范的Portlet容器的實(shí)現(xiàn),它為開發(fā)者提供了一個(gè)運(yùn)行portlets的工作平臺(tái)。然而,如果沒(méi)有一個(gè)驅(qū)動(dòng)器(driver),也就是Portal,的支持的話,運(yùn)行和測(cè)試Portlet容器將非常之麻煩。Pluto本身也提供了一個(gè)簡(jiǎn)單的Portal模塊,該模塊僅 僅是為了滿足Portlet容器和JSR168的需要而寫的。如果你需要一個(gè)成熟的Portal,請(qǐng)參考 Jetspeed項(xiàng)目。Jetspeed項(xiàng)目關(guān)注的是Portal本身,而不是Portlet容器。
 
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
portlet規(guī)范介紹(jsp/servlet 技術(shù))
Java開源Portal門戶類別列表
Introducing the Portlet Specification, Part 2
Portal技術(shù)學(xué)習(xí)
Liferay系列文章(一)Portal技術(shù)綜述
Portlet
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服