Portlet APIは、ポータルページ内に表示されるコンテンツをポータルサーバに依存せずに生成することを目的として、JSR168で規定されている標準のAPIです。すなわち、Portlet APIで作成されたPortletは、Portlet API仕様に準拠した任意のポータルサーバ上で動作することができます。
また、各Portletは、WAR形式のPortlet Applicationとして提供され、ポータルサーバ内のPortlet Containerによって管理されます。Portletは、クライアントからのリクエストに応じて、Portlet Containerから呼び出され、Portlet Containerによってライフサイクルを管理されます。
Portletは、ポータルページの中に表示されるHTML、XHTMLなどの部分的なコンテンツを生成することができます。また、Portletはユーザ情報や設定情報によってカスタマイズされたコンテンツを生成することができます。
|
これらの特徴をもつPortletは、Servletと類似した仕組みのうえで動作する、Portal用のWeb Componentとして設計されています。PortletとServletの比較結果について、以下に説明します。
PortletがもつServletとの共通点:
Javaテクノロジに基づくWeb Componentの1つである。
専用のContainerによって管理される。
動的なコンテンツを生成する。
ライフサイクルが、Containerによって管理される。
Web Clientのリクエストとレスポンスを通して動作する。
PortletがもつServletとの相違点:
Portletは、部分的なコンテンツを生成し、Portalによって統合されて完全なページとなる。
Portletに割り当てられたリクエストURLは、Portalによって管理され、Portletは自身のURLを意識しない。
Web Clientは、Portalを通してPortletを利用する。
リクエストが、ユーザとのインタラクションを実現するAction Requestと、ビューを生成するRender Requestに分かれている。
Portletが、提供する機能や割り当てられた状態を示すPortlet Modeをもつ。標準ではVIEW(通常表示)、EDIT(設定画面表示)、HELP(ヘルプ表示)の3種類が定義されている。
Window表示の大きさを示すWindow Stateをもつ。標準では、NORMAL(通常表示)、MAXIMIZED(最大化)、MINIMIZED(最小化)の3種類が定義されている。
ポータルページ内で同時に複数のPortletを利用することができる。
Portletがもつ独自の機能:
固有のプリファレンス情報を保有し、設定参照することができる。
あらかじめ定義されたユーザ情報を参照することができる。
Portlet Application内で共有されるSessionスコープと、PortletごとにプライベートなSessionスコープをもつ。
Portlet Modeと呼ばれるモードをもち、表示されるPortletのモードを変更することができる。
Window Stateと呼ばれるWindowの状態を保持し、表示されるWindowの大きさを変更することができる。
Portlet Mode | 内容 |
---|---|
VIEW | 通常の表示モードです。 |
EDIT | 利用者が編集できるモードです。 |
HELP | ヘルプを表示するモードです。 |
Window State | 内容 |
---|---|
NORMAL | 通常の大きさで表示をします |
MAXIMIZED | 最大化して表示します |
MINIMIZED | 最小化して表示します |
Portlet APIの詳細については、Portlet APIの仕様書(Java Portlet Specfication)を参照してください。