| Apcoordinator ユーザーズガイド |
目次
![]()
|
| 第3部 Webアプリケーションの開発 | > 第17章 APIを使ったプログラミング | > 17.1 セション管理 |
URLリライティングを使用する
二重処理を防止する
セションを明示的に切断する
セションクラスにHttpControlStateProfileクラスを使う
uji:dispatchタグ動作中は二重処理が防止されます。ビジネスクラスはuji:dispatchタグの動作中に実行されるため、ビジネスクラス実行中の二重処理が防止できます。

uji:formタグのpostOnceアトリビュートを使う
uji:formタグのpostOnceアトリビュートにtrueを指定すると、フォームの送信を1回のみに制限します。この場合、二重処理はブラウザ上で防止され、2回目以降のリクエストはサーバに送信されません。ただし、JavaScriptを使用して実現しているため、JavaScriptを無効にしているブラウザでは動作しません。
uji:formタグによる二重処理の防止機能は、uji:formタグのpostOnceアトリビュートの使用方法で説明します。
Apcoordinator V5.0L10、INTERSTAGE WEBCOORDINATORで提供していたuji:controlSectionタグは提供されません。uji:controlSectionタグを使ったJSPは修正しなくても実行できますが、uji:controlSectionタグを使用しない場合と同じ動作となります。 詳細は旧バージョンとの互換情報を参照してください。
2) セションクラスをHttpControlStateProfileから継承します。
<FORM> <uji:controlState /> ... </FORM>
3) セションクラスで、機能に対応したメソッドをオーバライドして、必要なパラメタを返却します。
package sample; public class SampleSession extends com.fujitsu.uji.http.HttpControlStateProfile { }
URLリライティングを使用する場合は、getSessionModeメソッドをオーバライドします。
|
|

javax.servlet.http.encodeURLクラスのencodeURLメソッドを利用しています。encodeURLメソッドの実装に依存します。
二重処理を防止する場合は、isDoublePostEnabledメソッドをオーバライドします。
|
デフォルトではPOSTメソッドによるリクエストに対して二重処理を防止します。
GETメソッドによるリクエストの二重処理も防止する場合は、初期化パラメタuji.doublegetdisabledを設定してください。

リクエストの検証については、リクエストの検証を参照してください。
|
uji:formタグのpostOnceアトリビュートによる二重処理の防止機能は、同じ画面から再度フォームを送信することを防ぎます。この機能はJavaScriptを利用して、フォーム送信時にフラグを立てることにより実現されます。JavaScriptを無効にしてあるブラウザでは動作しません。
|
|
skipScript="true"の指定は、フォーム送信時のJavaScriptの実行を抑止するための機能です。この指定のあるボタンが押された場合は、二重処理を防止するJavaScriptだけでなく、入力値をチェックするJavaScriptも実行されません。
目次
![]()
|