




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、高級JETSPEED教程Jetspeed 是什么?第 1 頁(共5 頁)Jetspeed 是 Apache 軟件基金會的開放源碼項目,它允許開發(fā)人員實現(xiàn)門戶網(wǎng)站。Jetspeed 是用 Java 語言編寫的,它為 portlet 開發(fā)提供了 Portal API,portlet 是構(gòu)成門戶網(wǎng)站構(gòu)件的小型 Java 應(yīng)用程序。Jetspeed 建立與外部數(shù)據(jù)和內(nèi)容饋送的連接,以通過門戶網(wǎng)站檢索和顯示該數(shù)據(jù)。實現(xiàn)門戶網(wǎng)站的方式可以是這樣的:用戶可以從 Web 瀏覽器或無線設(shè)備(如 WAP 電話或 Palm OS 設(shè)備)訪問它。Jetspeed 支持用戶界面定制、高速緩存、持久性和用戶認證這樣的內(nèi)置
2、服務(wù),因此門戶網(wǎng)站開發(fā)人員不必實現(xiàn)這些服務(wù)。Jetspeed 體系結(jié)構(gòu)模型第 2 頁(共5 頁)本圖顯示了 Jetspeed 體系結(jié)構(gòu)的構(gòu)件。本教程將 Tomcat 3.2 用于 servlet 引擎和 HTTP 服務(wù)器,并使用 Jetspeed V1.3a2。在本教程的第 1 部分中,我們討論了安裝和配置 Jetspeed 所需的步驟。如果您還沒有在系統(tǒng)上啟動和運行 Jetspeed,可能要先查看這份材料。 Jetspeed 所支持的 JSP portlet第 3 頁(共5 頁)Jetspeed 支持 JSP 作為 portlet 的構(gòu)件。它還提供了特定于 Jetspeed 的預(yù)定
3、義 taglib 塊,這使得重復的任務(wù)更容易執(zhí)行。Jetspeed 所支持的內(nèi)容格式第 4 頁(共5 頁)Jetspeed 支持 RSS(RDF 站點摘要,RDF Site Summary)和 OCS(開放內(nèi)容聯(lián)合,Open Content Syndication)格式。RSS 是一種用于聯(lián)合 Web 標題的 XML 格式。OCS 格式描述了多內(nèi)容通道,包括 RSS 標題。高級 Jetspeed 特性第 5 頁(共5 頁)Jetspeed 的一些高級特性包括: · 支持無線標記語言(WML) · Web 應(yīng)用程序開發(fā)基礎(chǔ)結(jié)構(gòu) · 跨所有支持 JDK 1.2 和 S
4、ervlet 2.2 的平臺的可移植性 · 可通過安全性 porlet 使用的用戶、組、角色和許可權(quán)管理 · 對 portlet 進行基于角色的安全性訪問 portlet 是什么?第 1 頁(共5 頁)可以將 portlet 看作在門戶頁面中顯示數(shù)據(jù)的可見的活動組件。上圖說明了關(guān)于門戶網(wǎng)站的 portlet。名為 Home 的門戶網(wǎng)站頁面上顯示了三個 portlet,它們名為 Reports 、Weather 和 Contacts。頁面布局第 2 頁(共5 頁)上圖說明了包含 portlet 的頁面的組織結(jié)構(gòu)。在頁面中,portlet 內(nèi)容是由 PortletControl
5、 和 PortletController 渲染的。· portlet 頁面中的 PortletControl 渲染 portlet 的標題和主體。 · PortletController 處理多個 PortletControl(每個控制一個 portlet),以便將從所有 portlet 抽出的信息組合起來,提供完整的頁面信息。 portlet 如何顯示內(nèi)容第 3 頁(共5 頁)portlet 使用元素構(gòu)造集(Element Construction Set,ECS)API 顯示內(nèi)容,該 API 是與 Jetspeed 捆綁在一起提供的。ECS API 從 Java 對象生
6、成標記元素??梢允褂?JSP 技術(shù)或 servlet 模板來生成作為輸出的內(nèi)容,然后由 ECS 元素捕獲該內(nèi)容再依次顯示內(nèi)容。ECS 支持無線標記語言(WML)以及 HTML 和 XML。portlet 高速緩存第 4 頁(共5 頁)Jetspeed 向開發(fā)人員提供了高級高速緩存機制。需要進行高速緩存的 portlet 連同其相關(guān)句柄信息(譬如其類名稱)以及一些 portlet 配置信息(譬如其 URL)一起被放置到高速緩存中。如果必須從高速緩存中除去 portlet,那么可以通過 expire() 方法來完成該操作,該方法可以決定 portlet 何時在高速緩存中已到期。門戶網(wǎng)站結(jié)構(gòu)標記語言
7、(PSML)第 5 頁(共5 頁)我們使用門戶網(wǎng)站結(jié)構(gòu)標記語言(Portal Structure Markup Language,PSML)將 portlet 手工注冊到 Jetspeed。PSML 通知 Jetspeed 哪些 portlet 可用,并將這些 portlet 注冊到 Jetspeed。portlet 的配置文件是 WEB-INF/conf 目錄中的 jetspeed-config.jcfg。缺省配置文件名為 default.psml 和 defaultWML.psml,它們位于 WEB-INF/psml 中。一旦創(chuàng)建了用戶,就擁有了兩個與之相關(guān)聯(lián)的配置文件 homeHTML.
8、psml 和 homeWML.psml,這兩個文件存儲在 WEB-INF/psml/<username> 中。PSML 由兩類標記組成:· 注冊表標記描述了 Jetspeed 引擎可用的所有 portlet。關(guān)于每個 portlet 的所有信息都存儲在 portlet 注冊表中。 · 站點標記描述了可以向特定用戶顯示哪些可用于 Jetspeed 引擎的 portlet。關(guān)于如何在屏幕頁面上組織 portlet 的信息,以及其表示特性的信息,是通過站點標記描述的。 用于移動設(shè)備的 JSP portlet 和 RSS portlet第 1 頁(共3 頁)在本教程的剩
9、余部分,我們將討論下列特性:· JSP portlet · RSS portlet 我們還將研究未記入文檔的難題,它們是在用這些類型的 portlet 在移動設(shè)備上顯示數(shù)據(jù)時發(fā)生的??梢栽?Jetspeed 網(wǎng)站上找到關(guān)于這些 portlet 所用的常見元素的描述。 標準 Web JSP portlet第 2 頁(共3 頁)JSP portlet 顯示了 JavaServer Pages 的輸出。下列清單是一個示例:<portlet-entry name="HelloWorld" hidden="false" type=&quo
10、t;ref" parent="JSP" application="false"> <meta-info> <title>Hello World</title> <description>Example of JSP Portlet</description> </meta-info> <parameter name="template" value="hello.jsp" hidden="false"/
11、> <media-type ref="html"/></portlet-entry>這個 portlet 顯示的內(nèi)容是 hello.jsp 頁面的輸出。這個 JSP 文件需要定位到 <tomcat_home>/<jetspeed_directory>/WEB-INF/templates/jsp/portlets 中。該 JSP 文件本身的代碼如下:<% taglib uri='/WEB-INF/templates/jsp/tld/template.tld'prefix='jetspeed
12、39; %><card id='_myhellotestjsp' title='HELLOWORLD'><p><b>JSP</b> Hello World<br /><jetspeed:uriLookup type="Customize" />Login<br/> <br>jetspeeed:uriLookup type="Login" /> <br>jetspeed:contentUri<br&g
13、t;apidocs/ <br><jetspeed:contentUri href="apidocs/" /><br>Server Port<br/> <%= request.getServerPort() %><br/></card>標準 RSS portlet第 3 頁(共3 頁)RSS portlet 渲染 RDF 站點摘要格式饋送,并將它作為 HTML 提供給用戶,如下列代碼清單所示:<portlet-entry name="Apacheweek" hidde
14、n="false" type="ref" parent="RSS" application="false"> <meta-info> <title>Apacheweek</title> </meta-info> <url></portlet-entry>url 標記提供了 RSS 饋送的位置,它必須是格式化為 RSS 的 XML 文件。RSS portlet 支持 WML 和 HTML 媒體類型。 步驟第 1 頁(共9 頁)要使 Jets
15、peed 可以使用 portlet,首先必須執(zhí)行這些步驟:1. 實現(xiàn)和編譯 portlet 2. 創(chuàng)建 portlet 注冊表片段 3. 將編譯好的 portlet 放置到適當位置 4. 將 portlet 注冊到 Jetspeed portlet 注冊表 5. 調(diào)整 portlet 代碼,使之可用于移動設(shè)備 合并了 Jetspeed 標記庫的、用于移動設(shè)備的 JSP portlet第 2 頁(共9 頁)在本章中,我們將創(chuàng)建一個簡單的 JSP Hello World portlet。在先前所示示例中,請注意 taglib 標記,它包括 template.tld。下列清單是該 portlet 本
16、身的代碼,在這里再次列出,供您參考:<% taglib uri='/WEB-INF/templates/jsp/tld/template.tld'prefix='jetspeed' %><card id='_myhellotestjsp' title='HELLOWORLD'><p><b>JSP</b> Hello World<br /><jetspeed:uriLookup type="Customize" />Login&l
17、t;br/> <br>jetspeeed:uriLookup type="Login" /> <br>jetspeed:contentUri<br>apidocs/ <br><jetspeed:contentUri href="apidocs/" /><br>Server Port<br/> <%= request.getServerPort() %><br/></card>每個 JSP portlet 都應(yīng)該合并以下 ta
18、glib 標記:uri='/WEB-INF/templates/jsp/tld/template.tld' prefix='jetspeed'如果要在門戶網(wǎng)站中包含 portlet,則它必須實現(xiàn) portlet 接口 。Jetspeed 提供了許多類,它們用于實現(xiàn)擁有最常用功能的 Portlet 接口。AbstractPortlet 類是這些預(yù)定義類中最簡單的一個。RunData 對象被傳遞到 getContent(),因為必須將它傳遞給該門戶框架中許多其它方法。portlet 使用元素構(gòu)造集(ECS)API 顯示內(nèi)容。 JSP portlet 標記函數(shù)第 3
19、頁(共9 頁)JSP Jetspeed 庫中有幾個標記可以使標準函數(shù)更簡單。這些標記包括用于引用的 href 標記、用于登錄的 URILookup 和用于內(nèi)容的 URILookup 等。 用于移動設(shè)備的 JSP portlet 位置第 4 頁(共9 頁)portlet 文件本身的位置特別重要。在我們所使用的 Jetspeed 發(fā)行版(1.3a2)中,我們發(fā)現(xiàn)在缺省情況下應(yīng)該用來放置文件的 JSPportletswml 目錄不存在,而文檔本身沒有指出這是為什么。您必須手工創(chuàng)建目錄 .jetspeedWEB-INFJSPtemplatesJSPportletswml,如下圖所示。 JSP port
20、let 命名和卡標識名稱第 5 頁(共9 頁)portlet 標識的名稱很重要,因為命名錯誤的卡將會斷開登錄頁面與特定 WML(移動)portlet 的鏈接。已注冊的 JSP portlet 標題名應(yīng)該與卡標識名稱一致,因為來自初始頁面的鏈接是通過 Jetspeed 的 portlet XSL 模板生成的;這樣就動態(tài)地創(chuàng)建了這些頁面(卡)之間的超級鏈接,如下列代碼清單所示: <portlet-entry name="myhellotestjsp" hidden="false" type="ref" parent="JS
21、P" application="false"> <meta-info> <title>MYWMLTESTJSP</title> <description>Simple HELLO JSP Portlet Example</description> </meta-info> <parameter name="template" value="mywmljsp.jsp" hidden="false"/> <medi
22、a-type ref="wml"/></portlet-entry>JSP portlet 注冊表片段第 6 頁(共9 頁)注冊表片段包括 portlet 的定義。當您將 portlet 的媒體類型指定為 WML 時,該 portlet 的內(nèi)容將被轉(zhuǎn)換以用于 WML 和移動設(shè)備。下面是用于我們剛開發(fā)的 portlet 示例的注冊表片段: <portlet-entry name="myhellotestjsp" hidden="false" type="ref" parent="JS
23、P" application="false"> <meta-info> <title>MYWMLTESTJSP</title> <description>Simple HELLO JSP Portlet Example</description> </meta-info> <parameter name="template" value="mywmljsp.jsp" hidden="false"/> <medi
24、a-type ref="wml"/> </portlet-entry>注冊為 HTML 類型的 JSP portlet第 7 頁(共9 頁)該圖顯示了將媒體類型設(shè)置為 HTML,然后將輸出包含到 HTML 頁面時,我們 JSP portlet 的外觀。portlet 注冊表第 8 頁(共9 頁)在創(chuàng)建了注冊表片段文件之后,必須將它部署到 /WEB-INF/conf 下的 Jetspeed。Jetspeed 注冊表中將包含這個目錄中擴展名為 .xreg 的任何文件。下列清單說明了用于我們示例的 Jetspeed 注冊表頁面的內(nèi)容:<portlet-en
25、try name="myhellotestjsp" hidden="false" type="ref" parent="JSP" application="false"> <meta-info> <title>MYWMLTESTJSP</title> <description>Simple HELLO JSP Portlet Example</description> </meta-info> <paramete
26、r name="template" value="mywmljsp.jsp" hidden="false"/> <media-type ref="wml"/></portlet-entry>從門戶網(wǎng)站查看 JSP Hello World!第 9 頁(共9 頁)在將 portlet 注冊到 Jetspeed 之后,可以通過移動設(shè)備在門戶網(wǎng)站頁面上查看該 portlet 的輸出。以下顯示了 OpenWave 仿真器中門戶網(wǎng)站的 Hello World portlet 的輸出:portlet
27、 的無線支持第 1 頁(共9 頁)正如本系列第一篇教程中所演示的,Jetspeed 支持 WAP 設(shè)備,而 WAP 瀏覽器渲染 WML 內(nèi)容。在本章中,我們將創(chuàng)建兩個簡單的 RSS portlet 來聯(lián)合內(nèi)容,以便在移動設(shè)備的 WAP 瀏覽器上進行查看。這兩者在配置和執(zhí)行上有所不同,但都產(chǎn)生相似的結(jié)果。一個稱為 LA_Times,使用 RSS 來聯(lián)合 L 網(wǎng)站上的內(nèi)容,它使其站點上的流專用于 WML 和移動設(shè)備。另一個使用本地格式化為 RSS 的 XML 文件。RSS portlet第 2 頁(共9 頁)RSS portlet 可以注冊為 WML 或 HTML 媒體類型。注:我們的 RSS p
28、ortlet 不會為移動設(shè)備修改流內(nèi)容,但您可以修改流內(nèi)容以使之適用于移動設(shè)備。正如您迄今為止所了解的,每個要包含在門戶網(wǎng)站中的 portlet 都必須實現(xiàn) portlet 核心。處理 RSS portlet 的核心部分之一是名為 rss-wml.xsl 的 XSL 文件。 RSS portlet 位置第 3 頁(共9 頁)正如所提到的,要考慮兩部分 RSS portlet:RSS portlet 代碼本身和 rss-wml.xsl,后者是專為處理 WML 的內(nèi)容而編碼的 RSS 處理文件。當您修改實際的 RSS portlet 代碼時,就控制了聯(lián)合的內(nèi)容;當修改 rss-wml.xsl 時,
29、就控制了聯(lián)合內(nèi)容的顯示。RSS portlet 本身位于 <tomcat_home>/<jetspeed_directory>/WEB-INF/classes/com/bluesunrise/portal/portlets/目錄。 rss-wml.xsl 處理文件位置第 4 頁(共9 頁)正如您從圖中看見的,RSS 處理文件 rss-wml.xsl 位于 <tomcat_home>/<jetspeed_directory>/WEB-INF/xsl/ 目錄。 用于 WAP 的 RSS portlet 注冊表片段第 5 頁(共9 頁)本圖顯示了用于
30、WAP 的無線 RSS portlet 示例的注冊表片段:<media-type ref="wml"/> 標記指示 Jetspeed 解析和利用 rss-wml.xsl 來顯示 WAP 內(nèi)容,因為媒體類型是 WML。 RSS portlet 注冊表第 6 頁(共9 頁)Jetspeed 的 Customize WML 節(jié)包含所有作為 WML 類型注冊到 Jetspeed 的 portlet。下列清單說明了用于我們兩個 portlet 的 Jetspeed 注冊表頁面的內(nèi)容:<portlet-entry name="wmlchannel"
31、 hidden="false" type="ref" parent="RSS" application="false"> <meta-info> <title>testWML_RSS</title> <description>JETSPEED RSS Portlet Example</description> </meta-info> <media-type ref="wml"/> <url>/
32、rss/Jetspeed2.rss</url></portlet-entry><portlet-entry name="LA_Times" hidden="false" type="ref" parent="RSS" application="false"> <meta-info> <title>LA_Times</title> <description>Simple RSS Portlet Example<
33、;/description> </meta-info> <parameter name="stylesheet.txt/vnd.wap.wml" value="/WEB-INF/xsl/rss-wml.xsl" hidden="false"/> <media-type ref="wml"/><url></portlet-entry>RSS portlet 代碼第 7 頁(共9 頁)Jetspeed 的 Customize WML 部分包含所有作為 W
34、ML 類型注冊到 Jetspeed 的 portlet。下列代碼清單用于聯(lián)合來自本地指定的 RSS 文件中的內(nèi)容。 <?xml version="1.0"?><rss version="0.91"> <channel> <title>Apache Jetspeed</title> <description> RSS for WML. </description> <image> <title>Apache Jetspeed</title>
35、; <url>images/jetspeed-powered.gif</url> <link>/jetspeed</link> </image> <item> <title>WAP-Apache Jetspeed</title> <link>/jetspeed</link> <description> Jetspeed is an Enterprise Informat
36、ion Portal </description> </item> </channel> </rss>從 WAP 電話查看 RSS第 8 頁(共9 頁)下面這兩張圖是名為 LA_Times 的已注冊 RSS portlet 從無線門戶內(nèi)輸出的內(nèi)容。第一幅圖是門戶網(wǎng)站視圖,第二幅圖則展示了名為 LA_Times 的 RSS portlet 的輸出。 下一幅圖演示了我們第二個 portlet 的 WAP 聯(lián)合,該 portlet 有一個 Jakarta 鏈接: 第一幅圖展示了門戶網(wǎng)站視圖,而第二幅圖展示了 RSS portlet 本身的輸出。 RSS
37、 portlet 技巧第 9 頁(共9 頁)在 Jetspeed 1.3a2 中,我們發(fā)現(xiàn)了一個有趣的行為,必須手工糾正它,以便顯示指定用于 WAP 的 RSS portlet。問題在于對 portlet 本身的處理是由兩個獨立的 XSL 文件執(zhí)行的。主 Jetspeed XSL 文件負責生成 WML 標記和從初始 WAP 屏幕到實際 RSS portlet 的超級鏈接,它根據(jù)注冊表中 portlet 的標題解析 HREF 卡名稱。另一方面,這個 Jetspeed 發(fā)行版中的 rss-wml.xsl 負責在 WAP 瀏覽器上顯示 RSS portlet,它總是解析出任何形如 <card
38、id="channel"> 的卡。您可以查看原始 rss-wml.xsl 文件中的錯誤代碼:. <xsl:template match="channel"> <xsl:variable name="description" select="description"/> <card id="channel">. <xsl:template match="downlevel:channel"> <xsl:variable name="description" select="downlevel:description"/> &
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教師考核與評價體系改革計劃
- 提升工作效率的年度改進措施計劃
- 跨國企業(yè)研發(fā)過程中的保密管理實踐
- 高品質(zhì)的辦公環(huán)境中綠色商業(yè)空間的整合策略
- 2025全屋智能主機
- 河南省駐馬店市重點高中2024-2025學年高二上學期1月期末模擬生物試題含答案
- 跨區(qū)域?qū)W校合作教育創(chuàng)新與發(fā)展新動力
- 跨文化背景下的自我管理能力培養(yǎng)
- 遠程醫(yī)療中的蔬菜水果減肥法服務(wù)
- 跨境電商物流安全保障機制探討
- 2023年高考真題-化學(福建卷) 含解析
- 欄桿拆除及更換施工方案
- 10我們愛和平(第1課時)(說課稿)2023-2024學年統(tǒng)編版道德與法治六年級下冊
- 《國際貿(mào)易實務(wù)(英文版)》(英文課件) -Ch 6 International Cargo Transport-Ch 11 Cross-border Commerce
- 新條令.新亮點-內(nèi)務(wù)條令解讀
- 中醫(yī)適宜技術(shù)-中藥熱奄包
- 林海雪原課件6張
- 銀發(fā)經(jīng)濟產(chǎn)業(yè)發(fā)展規(guī)劃
- 防火涂料質(zhì)量保證書
- 礦產(chǎn)資源開發(fā)合同備忘錄范本
- 大模型在刑偵技術(shù)中的應(yīng)用探索
評論
0/150
提交評論