重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

サーブレット作成しています。
webから入力した値をaccessに登録しているのですが、
ブラウザの「更新」を押すと、同じ内容がまた登録されてしまいます。
大分むかし、perlでcgiを作成していましたが、
同じことがあったような気がしますが・・

どのようにしたら回避できますか?

教えてください。

A 回答 (2件)

まず、原因は何かと言う事から理解しなければならないと思います。


二重登録が起きてしまう原因は、URLへパラメータが渡された状態のまま
更新するからです。
であれば、URLもしくはパラメータを処理すれば良いのではないですか?
方法としては、登録フォームに"regist"みたいな名前のフィールドを作り
そこにtrue等の文字列なりの値を入れます。そして登録処理を行った後に
このrequestオブジェクトの"regist"フィールドにfalseを入れます。
こうする事によって登録処理時に"regist"フィールドを参照、判断する事で
二重登録は防げると思います。
もうひとつ簡単な方法として「登録しました」と言うような文字を
表示するだけのページを作成し、登録処理が終わったあとこのページへ
フォワードします。そうすると更新されるURLは違うURLとなるので
これでも回避できると思います。
なんとなく以前、この方法で同様の処理を行った記憶があるので
今、動作確認はしていませんが可能だったと思います。
    • good
    • 1
この回答へのお礼

ありがとうございます。
なんとかなりました!

お礼日時:2002/12/25 13:20

連続して、submitボタンを押下した場合でしょうか?

この回答への補足

押してないです。
でも押しても入力がなにもない場合の処理はさせてますので大丈夫です。

補足日時:2002/12/25 13:19
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!