什麼是 Portal?
非一般搜尋入口網站,而是個人化、單一登入、整合異構資訊的 Web 平台。使用者可自訂 Portlet(小窗口)配置、風格、資料。典型範例:MyNetscape、MyYahoo。
Portal 三大核心組件
- Portal Server:呈現平台,提供個人化、單一登入、資訊聚合
- Portlet Container:執行環境,管理 Portlet 生命週期、偏好設定,接收請求轉發 Portlet
- Portlet:Java Web 元件,處理請求產生動態內容片段,可插拔、可聚合
Portlet vs Servlet
| 相同點 | 不同點 |
- Java Web 元件
- 有專屬 Container 管理
- 動態產生內容
- 生命週期由 Container 管理
- Request/Response 互動
|
- Portlet 產生片段,非完整頁面
- 無直接 URL 對應
- 需透過 Portal 互動
- 定義 Action/Render 請求處理
- 有 Portlet Mode(View/Edit/Help)與 Window State
- 單一頁面可共存多個 Portlet
|
Portlet 獨有功能:永久設定儲存、使用者資料存取、URL 重寫、雙範圍 Session。
Servlet 獨有功能:設定輸出編碼、HTTP Header、直接接收 URL 請求。
參考實作:Pluto (RI)
- JSR 168 規範 2003/10/27 正式發布
- RI 為 Apache Jakarta Pluto
- 安裝:執行
%pluto%/bin/install 指定 Tomcat 目錄
- 存取:
https://localhost:8080/pluto/portal
核心控制定義
- Portlet Modes:VIEW(顯示)、EDIT(設定)、HELP(說明)
- Window States:NORMAL、MAXIMIZED、MINIMIZED
- 權限控管:未登入者僅能 View/Help,不可 Edit
CSS 標準化(關鍵移植性)
規範定義標準 CSS 類別名稱:
- Fonts:
portlet-font, portlet-font-dim
- Messages:
portlet-msg-status, portlet-msg-error, portlet-msg-success...
- Sections:
portlet-section-header, portlet-section-body, portlet-section-alternate...
- Forms:
portlet-form-label, portlet-form-input-field, portlet-form-button...
- Menus:
portlet-menu, portlet-menu-item, portlet-menu-item-selected...
使用標準 CSS 即可移植至任何 JSR 168 相容 Portal,無需修改外觀代碼。
片段標記限制
- HTML 片段禁止:
base, body, iframe, frame, frameset, head, html, title
- XHTML 片段禁止:
base, body, iframe, head, html, title
其他關鍵特性
- Security、Caching、Taglib
- Portal 連結後端 EAI,提供單一登入、個人化、多裝置(PDA、手機)統一入口
- 政府與大企業應採用此方案,透過 Web Service 實現資訊流/金流/物流整合