uCosminexus Portal Framework ポートレット開発ガイド
ポートレットは,Servlet APIのリクエストディスパッチで呼び出されます。また,ポートレットは,uCosminexus Portal Framework上で動作するほかのポートレットと,次のオブジェクトを共有します。
- ServletContext
- ServletRequest
- ServletResponse
- ServletOutputStream
- HttpSession
ユーザが初めてポータルのウェルカム画面にアクセスしたときのポートレット呼び出しシーケンスを次の図に示します。
図2-2 ポートレット呼び出しシーケンス
日立APIポートレットの開発では,通常のWebアプリケーションの開発に加えて,次の点に注意してください。
- <この項の構成>
- (1) セッション管理
- (2) HTTPヘッダ操作
- (3) アトリビュート操作
- (4) リクエストディスパッチ
- (5) 複数ログイン対応
- (6) ポートレットの呼び出し順序
セッション管理はuCosminexus Portal Frameworkが実施します。ポートレットではServlet APIのセッション管理機能をそのまま利用できます。ただし,HttpSessionはuCosminexus Portal Frameworkおよびポートレットで共有するので,ポートレット内でセッションが必要ない場合でも,HttpSession#invalidateでセッションを無効にしないでください。
ポートレット内でのHTTPレスポンスヘッダおよびレスポンスコードの操作はできません。Servlet APIでのCookie設定,HTTPリダイレクトなどの操作は無効となります。
また,HTTPレスポンスヘッダが登録できる場合は,Cookieの情報はまとめて登録されます。ただし,次のような場合に,同一名称のCookieを登録しようとしたときは,エラーメッセージが出力され,ポートレットのCookie設定が無効となります。
- 別のポートレットで,同一名称のCookieの登録しようとした場合
- 同一ポートレットで,再度同一名称のCookieの情報を登録しようとした場合
HttpSessionおよびServletContextはすべてのポートレットで共有するため,アトリビュート名には,PortletUtils#getNamespaceで取得したプレフィックスを付けます。予約語のため,プレフィックスとして次の用語は使用できません。
- jp.co.hitachi.soft.portal
- turbine
- jetspeed
アトリビュート操作の例については,「付録A.3 アトリビュート操作」を参照してください。
リクエストディスパッチには,RequestDispatcher#includeおよびRequestDispatcher#forwardを使用します。ただし,forwardを使用する場合,RequestDispatcherはServletRequestから取得してください。
uCosminexus Portal Frameworkでは同一ユーザの複数ログインが制限されていません。同一ユーザが複数ログインした場合,それぞれに対してHttpSessionが割り当てられます。ユーザセッション管理をHttpSessionで実現する場合には,必要に応じて一貫性制御をする必要があります。
ポートレットの呼び出し順序に依存したポートレット開発はできません。
All Rights Reserved. Copyright (C) 2009, 2013, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2009, 2013, Hitachi INS Software, Ltd.