天天看點

關于Portlet和Portlet API

Portlet是Portal server的核心組成部分,它是運作在Portal Server上的Portal應用。Portlet 是可重用的元件,提供對應用程式、基于 Web 的内容和其它資源的通路。門戶網站中的一個頁面可以包含多個Portlet,而同一 portlet 的多個執行個體可為使用者顯示不同的資料。

從使用者的角度來看,portlet 是門戶網站頁面中的一個視窗,提供特定服務或資訊,例如提供月曆和新聞。從開發者的角度來看,portlet 是運作在 Portal Server 的 portlet 容器中的可插入的子產品。

我們可以有三種途徑獲得所需要的portlet。首先可以對WebSphere Portal已有的portlet進行修改使其符合自己的需要;其次可以從第三方 portlet 目錄中下載下傳所需要的portlet;如果上述兩種方法都不能滿足特定的需要,還可以自己開發portlet。

1.2 關于Portlet API

簡單說來,抽象類portlet是Portlet API的核心。 Portlet類擴充了Servelt API的HTTPServlet。所有的Portlet 都從HTTPServlet繼承而來,間接地擴充了Portlet類,如下所示:

... +--javax.servlet.http.HttpServlet | +--org.apache.jetspeed.portlet.Portlet | +--org.apache.jetspeed.portlet.PortletAdapter | +--com.myCompany.myApplication.myPortlet       

是以,Portlet是一類特殊的Servlet,能友善的插入Portal Server,并在其上運作。與 servlet 不同,portlet 無法直接發送重定向或錯誤資訊到浏覽器,以及轉發請求或者寫專用标記到輸出流。

與 servlet 相比,Portlet有更強的動态性,可在不重新啟動 Portal Server 的情況下進行更新:

  • 可以使用門戶網站管理界面安裝和除去portlet 應用程式
  • portlet 的設定可由擁有适當通路權的管理者進行更改
  • 可以使用管理 portlet 動态建立和删除 portlet

Portlet容器依賴于J2EE體系結構。Portlet 被打包成類似于J2EE Web應用的WAR檔案,并按類似于 servlet 的方式部署。與其它 servlet 相似,使用 servlet 部署描述符(web.xml)把 portlet 定義到應用程式伺服器,這個檔案定義 portlet 的類檔案和隻讀初始化參數。除此之外,portlet還必須提供一個portlet的部署描述符(portlet.xml)來把portlet定義到portal server