portal技術原理

JSR168將Portal 的組成分爲三部份 (1) Portal Server (2) Portlet Container (3) Portlet。


Portal Server的定義

建立在HTTP Server上。負責接收HTTP請求,調用Portlet,並將Portlet產生的內容聚集到Portal頁面返回給用戶。(Portal Server有時簡稱Portal)。


Portlet Container 的定義

Portal Container:管理Portlet的生命週期並且提供其運行所需要的必要環境。同時也提供Portlet相關信息的存儲。一個Portlet container 接收到來自Portal 的請求後,接着將這個請求傳遞給存在Container 的Portlet 執行。Portlet Container 沒有義務去組合Portlets 產生的信息內容,這個工作必須由Portal (即Portal Server)來處理。Portal 和Portlet Container 可以放在一起視爲同一個系統的組件,或者分開成爲兩個獨立的組件。


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 的設置。


Portlet生命週期

Portlet接口的四個方法構成一個完整的生命週期:

public void init(PortletConfigconfig) throws PortletException; 由Portlet容器調用,在將Portlet放入服務區前調用。Portlet容器在初始Portlet後,直接調用這個方法。

public void processAction (ActionRequest request, ActionResponse response) throws PortletException, java.io.IOException; 由Portlet容器調用,用來處理action request。 public void render (RenderRequest request, RenderResponse response) throwsPortletException, java.io.IOException; 由Portlet容器調用,用來生成輸出。

public void destroy() ; 將Portlet從服務區中刪除。 


一個Portal處理流程:

1. 一個客戶端(例如:一個web瀏覽器)在被驗證之後向Portal發出HTTP請求;

2. Portal(或稱爲Portal Server)接收到請求;

3. Portal判斷請求是否包含與組成門戶網站網頁的portlet有關的動作;

4. 如果存在與某個portlet相關的動作,Portal請求portlet容器調用portlet處理動作;

5. Portal通過portlet容器調用portlet,獲得被包含在產生的門戶網站網頁中的內容片段;

6. Portal將portlet產生的結果聚集於門戶網站的網頁,然後將網頁返回至客戶端。


需要注意的是Portal服務器是建立在Http服務器的基礎上的。Portal服務器不可獨立的運行


發佈了63 篇原創文章 · 獲贊 21 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章