資源描述:
《jsr 286 portlet 新特性》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、第一部分Portlet2.0新特性介紹====================================================================== 關(guān)于本系列 本系列文章專(zhuān)門(mén)針對(duì)具有JSR168Portlet開(kāi)發(fā)基礎(chǔ),并且想了解JSR286Portlet新特性和開(kāi)發(fā)流程的開(kāi)發(fā)人員。在學(xué)習(xí)完本系列后,您將了解相對(duì)于JSR168Portlet,JSR286Portlet究竟提供了哪些增強(qiáng)功能,以及這些新增特性在實(shí)際開(kāi)發(fā)中的應(yīng)用?! 〉?部分將簡(jiǎn)單回顧JSR168Portlet,并列出了JSR286Portlet的新增
2、內(nèi)容?! 〉?部分和第3部分將通過(guò)在ApachePluto2.0平臺(tái)上開(kāi)發(fā)和部署Portlet應(yīng)用程序,向讀者介紹JSR286Portlet新特性的使用方法?! £P(guān)于本文 本文假定讀者熟知JSR168Portlet,并對(duì)J2EE基本常識(shí)有一定了解。本文主要以理論的方式向讀者介紹JSR286Portlet的以下新增特性: 資源服務(wù) 事件 共享呈現(xiàn)參數(shù) Portlet過(guò)濾器 Portlet窗口 Portlet和JSR168 Portlet是部署在容器內(nèi)用來(lái)生成動(dòng)態(tài)內(nèi)容的Web組件,與servlet類(lèi)似,portlet的整個(gè)生命周期從in
3、it到destroy的過(guò)程都在portlet容器中進(jìn)行。JavaPortletSpecification對(duì)portletAPI、標(biāo)準(zhǔn)化用戶數(shù)據(jù)、參數(shù)設(shè)置、portlet請(qǐng)求以及響應(yīng)、部署、打包以及安全等方面都做了詳細(xì)的規(guī)定,以此來(lái)實(shí)現(xiàn)portlet之間以及portlet與portlet容器之間的交互和協(xié)作。JavaPortletSpecification1.0,即JavaSpecificationRequest(JSR)168發(fā)布于2003年10月?! SR286及其新特性 JSR168目前在業(yè)界受到廣泛支持,而且它由開(kāi)放源碼支持。標(biāo)準(zhǔn)和產(chǎn)品的
4、第一個(gè)版本存在一定的缺陷,僅支持最基本的用例,在功能上有一些限制。而且JavaPortletSpecificationV1.0也存在這種情況,因此,經(jīng)過(guò)三年之后,大多數(shù)支持JavaPortletSpecificationV1.0的門(mén)戶產(chǎn)品都提供一些附加擴(kuò)展,以支持更高級(jí)的用例,這些附加的擴(kuò)展造成了各個(gè)門(mén)戶產(chǎn)品的標(biāo)準(zhǔn)不統(tǒng)一,彼此間的交互協(xié)作成了不可避免的問(wèn)題。為了更好地規(guī)范portlet開(kāi)發(fā),以適應(yīng)業(yè)界發(fā)展,并提供適應(yīng)于最高級(jí)別用例的標(biāo)準(zhǔn)解決方案,從而為這些高級(jí)功能提供互操作性,在2005年11月開(kāi)始了JavaPortletSpecification
5、V2.0(稱(chēng)為JSR286)的開(kāi)發(fā),JavaPortletSpecificationV2.0目前已經(jīng)進(jìn)入Finaldraft的等待審批階段,并計(jì)劃在2008年3月正式發(fā)布。JSR286最終草案兼容了JSR168,并完善了JSR168的部分功能,并提供了諸多JSR168所沒(méi)有的新特性,例如資源服務(wù)、事件、portlet過(guò)濾器、共享呈現(xiàn)參數(shù)及portlet窗口等。與V1.0類(lèi)似,V2.0也將基于J2EE1.4,因此可讓Portlet使用J2EE1.4增強(qiáng)(如JSP2.0)。下面是該新規(guī)范的一些主要功能及特性: 資源服務(wù):一種新的通過(guò)portlet呈現(xiàn)
6、資源的方式?! ∈录和ㄟ^(guò)發(fā)送事件和接收事件來(lái)實(shí)現(xiàn)portlet之間的通信?! ortlet過(guò)濾器:與servlet過(guò)濾器類(lèi)似,根據(jù)Portlet請(qǐng)求和響應(yīng)動(dòng)態(tài)的呈現(xiàn)內(nèi)容的變換。存在以下四種類(lèi)型的portlet過(guò)濾器: Action過(guò)濾器 Render過(guò)濾器 Resource過(guò)濾器 Event過(guò)濾器 共享呈現(xiàn)參數(shù):除了portlet私有的呈現(xiàn)參數(shù)之外,新增了可以在portlet之間共享的呈現(xiàn)參數(shù)?! ortlet窗口:提供portlet窗口ID供portlet使用?! ∠旅嫖覀儗?duì)JSR286所提供的這些新功能及其使用逐一做詳細(xì)介紹。
7、 資源服務(wù) 在JSR168中,Portlet服務(wù)于資源的方法只有兩種:直接鏈接到資源,或者通過(guò)Portlet服務(wù)于資源。兩種方法分別適用于不同目的的需要,各有優(yōu)缺點(diǎn)?! ≈苯渔溄訉?duì)于所有Portlet狀態(tài)都相同的靜態(tài)資源非常有效,但對(duì)于其他用例效果卻不太好,因?yàn)樾枰紤]來(lái)自Portlet上下文的信息。這樣的示例包括基于Portlet模式、窗口狀態(tài)、當(dāng)前呈現(xiàn)參數(shù)或Portlet首選項(xiàng)呈現(xiàn)不同資源?! ∫砸粋€(gè)JSP文件test.jsp為例,如果要訪問(wèn)該資源,可以直接通過(guò)超鏈接訪問(wèn)該文件,如清單1所示:清單1.直接訪問(wèn)資源文件8、url value="/test.jsp" />">test.jsp
或者通過(guò)Servlet轉(zhuǎn)向,如清單2和清