フォームの重複コミットを防止するいくつかの方法


フォームの重複コミットを防止するいくつかの方法
アクション処理フォーム(データベースへの書き込み操作)を使用する過程では、重複してデータベースに挿入する現象が発生することが多く、この現象の発生を防止するために、データベースに不要なゴミデータをもたらすため、重複したコミットに対して制限表示を行う必要がある.
以下に、いくつかの一般的な方法を提供する.
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.//      }