パラメータ自動付加
概要
パラメータ自動付加とは
- セッションID付加
- オプションパラメータ付加
- キャッシュコントロール
機能の総称です。
これらの機能を使用することで、常に付加したいパラメータの付与や、Cookieが使えない携帯端末でのセッション処理時に必要なセッションIDの引き回しなどの処理をDurianに任せ、アプリケーションの負担を減らすことができます。
セッションID付加
セッションID、Cookie未サポート端末のセッション維持を行うため、すべてのaタグのhref属性、およびformタグのaction属性、またはformタグの非表示フィールド(<input type="hidden">)にセッション情報が埋め込まれます。
リダイレクト時にもLocationヘッダで指定されたURLにセッションIDが付加されます(JSPからの呼び出しの場合、sendRedirectメソッドに相対URLが指定された場合に限られます)。
aタグの変換例
<a href="next.html"> ↓ <a href="next.html;jsessionid=123456789">
formタグの変換例
<form action="query.jsp"> ... </form> ↓ <form action="query.jsp;jsessionid=123456789"> ... </form>
PHPSESSID, CFID, CFTOKEN のような jsessionid 以外のセッションIDにも対応します。セッションIDに使用する Cookie の名前は、管理ツールで設定します。
セッションIDの自動付加は、設定により自動付加機能を無効にすることもできます。
※Durianにはセッションを開始する機能は含まれていないため、セッションの開始はアプリケーションで行う必要があります。Durianは、Cookie未サポート端末に対してセッションを継続させる機能のみを持ちます。
オプションパラメータ付加
URLに特定のクエリパラメータを自動的に付加します。オプションパラメータは、すべてのaタグのhref属性、およびformタグ内の非表示フィールド(<input type="hidden">)もしくはaction属性に追加されます。
この機能は、DoCoMoでユーザIDを取得する際や、ロードバランサに対し特定のクラスタメンバへのアクセスを指示する際などに利用できます。
aタグの変換例
<a href="next.html"> ↓ <a href="next.html?param=foo">
formタグの変換例(GET)
<form action="query.jsp"> ... </form> ↓ <form action="query.jsp"> <input type="hidden" name="param" value="foo" /> ... </form>
formタグの変換例(POST)
<form action="regist.jsp" method="POST"> ... </form> ↓ <form action="regist.jsp?param=foo" method="POST"> ... </form>
フォームでPOSTする際、設定により、パラメータ追加方法を以下のいずれかに指定できます(Durian 4.0.3 以降のみ)。
- リクエストURIに追加:action属性のクエリー文字列として追加されます
- POSTデータとして追加:hiddenフィールドとして追加されます
リダイレクト時にもLocationヘッダで指定されたURLにオプションパラメータが付加されます。ただし、JSPからの呼び出しの場合、sendRedirectメソッドに相対URLが指定された場合に限られます。
キャッシュコントロール
au端末では、同一ページへのリンクが端末内部のキャッシュにヒットするため、同一ページがリンク先となっていたり、フォームの送信先となっているときに正常に動作しません。
そのため、リンクにリクエストごとに異なる値を持つダミーパラメータdurianh(Durian管理ツールにて変更可能)を付加することにより、これを回避します。
したがって、au端末のキャッシュを考慮してページを作る必要はありません。
aタグでのau端末でのキャッシュコントロール
<a href="status.jsp"> 更新 </a> ↓ <a href="status.jsp?durianh=1"> 更新 </a>
formタグでのau端末でのキャッシュコントロール
<form action="query.jsp"> ... </form> ↓ <form action="query.jsp?durianh=1"> <input type="hidden" name="durianh" value="1" /> ... </form>
さらにEZwebにおいて、端末のBackボタンで戻った場合もDurian上のアプリケーションでは端末キャッシュにヒットさせません。
意図的にキャッシュにヒットさせたい場合にはheadタグ内に以下のmetaタグを記述します。
ただし、この設定が有効なのはauのWAP2端末のみです。
metaタグでのau/WAP2でのキャッシュヒット設定
<meta http-equiv="Cache-Control" content="max-age=100" />
※max-age=100:キャッシュの有効期間100秒