フォームの重複コミットを防止するいくつかの方法
フォームの重複コミットを防止するいくつかの方法
アクション処理フォーム(データベースへの書き込み操作)を使用する過程では、重複してデータベースに挿入する現象が発生することが多く、この現象の発生を防止するために、データベースに不要なゴミデータをもたらすため、重複したコミットに対して制限表示を行う必要がある.
以下に、いくつかの一般的な方法を提供する.
1.ページスクリプトは、一度フォームをコミットした後、コミットボタンを使用不可にすると、データベースへの書き込みがトリガーされなくなる.
2,書き込みデータベース操作のactionを解放した後,formbeanにおけるresetformメソッドを呼び出し,formにおけるデータベースを空にする.もちろん,formにおけるデータベースのコミットに一定の制限がある場合には機能し,nullをデータベースに書き込むことを許可する場合には機能しない.
3,書き込みデータベース操作のactionを発行した後、forwardの方法でページ要求を転送せず、sendRedirectの方法を直接採用し、URLアドレスの中で書き込みデータベース操作をトリガしたactionを新しいページに移動し、ページをリフレッシュし、データを繰り返し提出しない.
4,strutsにおけるtoken法を用いて実現する.
以下のように簡単に実現されます.
2つのaction、1つのtest.jspページ.
test.jsp:
移動する
ここでaction:go書き込みコード:saveToken(request);
データコミットフォームのactionを書き込み、次の処理を行います.
アクション処理フォーム(データベースへの書き込み操作)を使用する過程では、重複してデータベースに挿入する現象が発生することが多く、この現象の発生を防止するために、データベースに不要なゴミデータをもたらすため、重複したコミットに対して制限表示を行う必要がある.
以下に、いくつかの一般的な方法を提供する.
1.ページスクリプトは、一度フォームをコミットした後、コミットボタンを使用不可にすると、データベースへの書き込みがトリガーされなくなる.
2,書き込みデータベース操作のactionを解放した後,formbeanにおけるresetformメソッドを呼び出し,formにおけるデータベースを空にする.もちろん,formにおけるデータベースのコミットに一定の制限がある場合には機能し,nullをデータベースに書き込むことを許可する場合には機能しない.
3,書き込みデータベース操作のactionを発行した後、forwardの方法でページ要求を転送せず、sendRedirectの方法を直接採用し、URLアドレスの中で書き込みデータベース操作をトリガしたactionを新しいページに移動し、ページをリフレッシュし、データを繰り返し提出しない.
4,strutsにおけるtoken法を用いて実現する.
以下のように簡単に実現されます.
2つのaction、1つのtest.jspページ.
test.jsp:
移動する
ここでaction:go書き込みコード:saveToken(request);
データコミットフォームのactionを書き込み、次の処理を行います.
1.if(!isTokenValid(request, true)){
2. resetToken(request);
3. System.out.println(" ");
4. }else{
5. saveToken(request);
6. System.out.println(" ");
7. }
8.// if(!isTokenValid(request)){
9.// saveToken(request);
10.// //
11.// System.out.println(" ");
12.// }else{
13.// resetToken(request);
14.// //
15.// System.out.println(" ");
16.// }