這里所說的Portal是指JCP-JSR168規范所描述的:Portal是一個基于Web的應用,通常它提供個性化、單點登錄、內容集成和顯示等功能。Portal技術包括三個方面: 1) Portal服務器(Portal Server); 2) Portlet容器;(Portlet Container) 3) Portlet。 1) Portal Server 的定義是 一個 Portal(門戶網站)就是指一個 Web-based 的系統,通常都會提供個人化設置、單一登陸、以及由各種不同來源或不同網站取得各式各樣的信息,并且將這些信息放在網頁之中組合而成的呈現平臺,門戶網站會有精巧的個人化設置去提供定制的網頁,當不同等級的使用者來瀏覽該頁面將獲得不同的信息內容。 負責接收HTTP請求,調用portlet,并將portlet產生的內容聚集到portal page返回給客戶。 2) Portlet Container 的定義是 portlet container 是提供 portlets 執行的環境,包含了許多 portlets 并且管理他們的生命周期,他也會永遠保存著 portlets 的喜好設置,一個 portlet container 接收到來自 portal 的請求后,接著將這個請求傳遞給存在 container 的 portlet 執行。portlet container 沒有義務去組合 portlets 產生的信息內容,這個工作必須由 portal 來處理。portal 和 portlet container 可以放在一起視為同一個系統的組件,或者分開成為兩個獨立的組件。 負責提供portlet的運行時環境,管理portlet的生命周期,還負責提供portlet持久化能力。 3) Portlet 的定義是 一個 Portlet 是以 Java 技術為技術的 Web 組件,由 Portlet Container 所管理,專門處理客戶的 request 以及產生各種動態的信息內容。Portlets 為可插式 ( pluggable ) 的客戶界面組件,提供呈現層成為一個信息系統。這些由 portlet 產生的內容也被稱為片段 (fragment),而片段是具有一些規則的Markup( HTML、XHTML、WML ),而且可以和其他的片段組合而成一個復雜的文件。而 Portlet 中的內容正常來說是與其他 Portlet 的內容聚合而成為一個 Portal 網頁。而 Portlet 的生命周期是被 Portlet Container 所管理控制的。客戶端和 portlets 的互動是由 portal 通過典型的 request/response 方式實現,正常來說,客戶會和 portlets 所產生的內容互動,舉例來說,根據下一步的連接或者是確認送出的表單,結果 portal 將會接收到 portlet 的動作,將這個處理狀況轉向到目標 portlet。這些 portlet 內容的產生可能會因為不同的使用者而有不同的變化,完全是根據客戶對于這個 portlet 的設置。 Portal主要是解決企業信息和應用的前端集成問題,它負責連結企業后臺EAI,集成企業的結構和非結構化信息,并提供統一的訪問企業信息和應用的入口。 (摘自JSR168規范文檔) portlet 與 servlet 的關系 1) Portlet 和 Servlet 的相似之處 @ portlets 也是 Java 技術的 web 組件 2) Portlet 和 Servlet 也有一些不同 @ portlets 只產生 markup 信息片段,不是完整的網頁文件。而 Portal 會將所有的 Portlet markup 信息片 段放到一個完整的 Portal 網頁。 3) Portlet 有一些附加的功能是 Servlet 所沒有的 @ Portlets 能夠存取及儲存永久配置文件及定制資料。 4) Portlet 不具有一些功能, 但是 Servlet 卻有提供 @ servlet 具有設置輸出的文字編碼( character set encoding)方式 基于Portal開發項目的優勢 2、可以分享Portal服務器和Portlet容器提供的種種功能。這要視Portal服務器提供商而定。 3、由于Portlet已規范化(JSR168),所以應用中開發的Portlet可以部署在不同的Portal服務器上。 |