Ajaxフレームワーク ユーザーズガイド |
目次 索引 |
第3章 通信フレームワーク | > 3.9 リクエスト送信時のURLについて |
Ajaxフレームワークを利用した通信、および画面部品内での通信において、URLリライティングを使用する場合は、動作定義にセションIDを設定します。
ここでは、以下の項目について説明します。
URLリライティングは、Cookieによるセション管理よりも、セションIDが搾取される危険性が高くなります。できる限り、Cookieによるセション管理を行ってください。URLリライティングを使用しない場合は、Cookieによるセション管理となります。
URLに付加するセションIDは、Ajaxフレームワークの動作定義に追加することによって、設定することができます。
以下に、Ajaxフレームワークの動作定義に設定する例を示します。
<script type="text/javascript" charset="UTF-8" src="rcf_config.js"></script> <script type="text/javascript"> //<![CDATA[ // Ajaxフレームワークの動作定義にセションIDを設定 RCF_config.jsessionid = "<%=session.getId()%>"; //]]> </script> <script type="text/javascript" src="acf/file/rcf/rcf.js"></script> |
RCF_configオブジェクトのjsessionidプロパティについては、“Ajaxフレームワークの動作定義”を参照してください。
セションIDの設定は、Ajaxフレームワークの初期化処理(rcf.js)よりも先に記述しなければなりません。
Apcoordinatorを利用する場合は、ApcoordinatorのURLリライティング機能も使用する必要があります。
ApcoordinatorのURLリライティング機能を使用するには、com.fujitsu.uji.http.HttpControlStateProfileクラスを継承して作成したセションクラスで、getSessionMode()メソッドをオーバーライドして、HttpControlStateProfile.URLREWRITINGを返却するようにします。詳細は、“Apcoordinator ユーザーズガイド”を参照してください。
以下に記述例を示します。
import com.fujitsu.uji.http.HttpControlStateProfile; public class Session extends HttpControlStateProfile { public Session() { } public int getSessionMode() { return HttpControlStateProfile.URLREWRITING; } } |
動作定義に設定されたセションIDは、以下の項目でURLに付加されます。
以下に示すHTMLタグによって記述されたリソースの取得では、Ajaxフレームワークで設定されたセションIDは付加されません。
アプリケーションで付加する必要があります。
以下のAPIを利用すると、任意のURLに対して、動作定義に設定されたセションIDを付加することができます。
JavaScript API |
説明 |
---|---|
RCF.encodeURL(String url) |
パラメタで指定したURLに、RCF_configオブジェクトのjsessionidで指定されたセションIDが付加されて返されます。 パラメタの設定値に異常がある場合は、エラーメッセージ(RCF20008)が出力されます。 |
目次 索引 |