什麼是Portal?
Portal是一個基于web的應用程式,它主要提供個性化、單點登入、不同來源的内容整合以及存放資訊系統的表示層。
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 ) 的客戶界面元件,提供呈現層成為一個資訊系統。
Portlets與Servlet的異同?
相同點
基于web應用的java技術
由特定的容器管理
動态生成内容
生命周期由容器進行管理
通過request/reponse進行互動
不同點
portlet隻生成片段
portlet并不直接綁定到某一個URL上
portlet通過portal進行互動
portlet可以多次在同一個portal頁面上同時出現
portlet優點
能通路到使用者配置資訊
能在不同的域中存儲會話:應用程式級到私有級。
portlet與servlet的關系
前者能調用後者,并且能共享資訊,包括:Attributes
portlet容器是servlet容器的擴充
portlet無法做到的事情
設定response的字元集編碼
設定http header
擷取用戶端的request
一個Portal處理流程
1. 一個用戶端(例如:一個web浏覽器)在被驗證之後向Portal發出HTTP請求;
2. Portal(或稱為Portal Server)接收到請求;
3. Portal判斷請求是否包含與組成門戶網站網頁的portlet有關的動作;
4. 如果存在與某個portlet相關的動作,Portal請求portlet容器調用portlet處理動作;
5. Portal通過portlet容器調用portlet,獲得被包含在産生的門戶網站網頁中的内容片段;
6. Portal将portlet産生的結果聚集于門戶網站的網頁,然後将網頁傳回至用戶端。