隨著Portal一步步走向成熟其結(jié)構(gòu)和功能也發(fā)生了較大變化,從混和型服務(wù)走向以系統(tǒng)框架為核心,應(yīng)用程序與部署、開發(fā)完全分開的階段,Portal相當(dāng)與一個(gè)骨架一樣可以接納外部的這種技術(shù)架構(gòu)開發(fā)的應(yīng)用程序,使用Portals Bridges模式來連接不同的應(yīng)用程序,可包括一下幾種:
集成Struts MVC模式開發(fā)的應(yīng)用程序:
Struts已經(jīng)成為了用Java創(chuàng)建Web應(yīng)用的一個(gè)最流行的框架工具,Struts所實(shí)現(xiàn)的MVC模式給Web應(yīng)用帶來了良好的層次劃分,同時(shí)也提供了一系列的工具來簡(jiǎn)化Web應(yīng)用的開發(fā)。
應(yīng)用程序開發(fā)者無需關(guān)心Portal的規(guī)范,只要關(guān)心Struts本身的開發(fā),這樣大大降低了開發(fā)成本和開發(fā)人員的再培訓(xùn)
圖7:在Portal中集成Struts應(yīng)用程序
主要實(shí)現(xiàn)類:
public class StrutsPortlet extends GenericPortlet
下面是Portlet的片斷:
<portlet id="StrutsPortletDemo">
<init-param>
<name>ServletContextProvider</name>
<value>org.apache.jetspeed.portlet.
ServletContextProviderImpl</value>
</init-param>
<init-param>
<name>ViewPage</name>
<value>/Welcome.do</value>
</init-param>
<init-param>
<name>HelpPage</name>
<value>/Tour.do</value>
</init-param>
<portlet-name>StrutsPortletDemo</portlet-name>
<display-name>Struts Portlet Demo</display-name>
<description>This is the struts MailReader portlet demo</description>
<portlet-class>org.apache.portals.bridges.struts.StrutsPortlet
</portlet-class>
<expiration-cache>-1</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
<portlet-mode>HELP</portlet-mode>
</supports>
集成WebWork開發(fā)的應(yīng)用程序
WebWork是一個(gè)源代碼開放的Web應(yīng)用框架,用于簡(jiǎn)化基于Web的應(yīng)用開發(fā)。本專欄介紹了WebWork并且描述了如何使用WebWork和JavaServerPages(JSP)、Velocity兩種技術(shù)來建立注冊(cè)界面的過程
通過Jetspeed2的Portals Bridges框架來實(shí)現(xiàn)和webwork的集成,主要實(shí)現(xiàn)類
public class Webwork2Portlet extends GenericPortlet
JSF應(yīng)用程序集成
JSF是什么?
JSF為廣大基于JAVA的 Web應(yīng)用用戶界面的開發(fā)人員提供了標(biāo)準(zhǔn)的編程接口、豐富可擴(kuò)展的UI組件庫(一個(gè)核心的JSP標(biāo)記庫用來處理事件、執(zhí)行驗(yàn)證以及其他非UI相關(guān)的操作和一個(gè)標(biāo)準(zhǔn)的HTML 標(biāo)記庫來表示 UI組件)、事件驅(qū)動(dòng)模型等一套完整的Web應(yīng)用框架,通過 JSF ,您可以在頁面中輕松自如地使用 WEB 組件、捕獲用戶行為所產(chǎn)生的事件、執(zhí)行驗(yàn)證、建立頁面導(dǎo)航…,同時(shí)您會(huì)發(fā)現(xiàn),當(dāng)使用支持JSF的開發(fā)工具來開發(fā) JSF 應(yīng)用的時(shí)候,一切將會(huì)變得異常簡(jiǎn)單,就類似于我們現(xiàn)在開發(fā)VB或者PowerBuilder程序一樣的簡(jiǎn)便,GUI方式拖放組件、修改組件屬性、建立組件間關(guān)聯(lián)以及編寫事件偵聽器等等,這樣,一個(gè)并不是特別熟悉Java的Web應(yīng)用開發(fā)人員也能夠輕松地完成自己的任務(wù)了,這種易開發(fā)性對(duì)于J2EE而言無疑是太重要了
集成PERL應(yīng)用程序
PERL介紹:
Perl 就是 Practical Extraction and Reporting Language 的簡(jiǎn)稱,是一種最廣泛應(yīng)用于語法分析和 World Wide Web 的編程語言。它起源于 awk、C、sh 和 sed 語言,然而,它的應(yīng)用開發(fā)遠(yuǎn)比其他任何一種面向?qū)ο缶幊陶Z言更加容易。
實(shí)現(xiàn)方法:
N-US>public class PerlPortlet extends GenericPortlet 直接通過HttpServletResponseWrapper來封裝獲取Response的字節(jié)流
Portlet的配置的片斷
<portlet-name>perl-demo</portlet-name>
<display-name>Perl demo Portlet</display-name>
<portlet-class>org.apache.portals.bridges.perl.PerlPortlet
</portlet-class>
<expiration-cache>-1</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
</supports>
<portlet-info>
集成PHP應(yīng)用程序
PHP介紹:
PHP是一個(gè)基于服務(wù)端來創(chuàng)建動(dòng)態(tài)網(wǎng)站的腳本語言,您可以用PHP和HTML生成網(wǎng)站主頁。當(dāng)一個(gè)訪問者打開主頁時(shí),服務(wù)端便執(zhí)行PHP的命令并將執(zhí)行結(jié)果發(fā)送至訪問者的瀏覽器中,這類似于ASP和CoildFusion,然而PHP和他們不同之處在于PHP開放源碼和跨越平臺(tái),PHP可以運(yùn)行在WINDOWS NT和多種版本的UNIX上。它不需要任何預(yù)先處理而快速反饋結(jié)果,它也不需要mod_perl的調(diào)整來使您的服務(wù)器的內(nèi)存映象減小。PHP消耗的資源較少,當(dāng)PHP作為Apache Web服務(wù)器一部分時(shí),運(yùn)行代碼不需要調(diào)用外部二進(jìn)制程序,服務(wù)器不需要承擔(dān)任何額外的負(fù)擔(dān)。
public class PHPApplicationPortlet extends GenericPortlet