File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Servlets and the fly likes Help needed in preventing data being inserted twice. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "Help needed in preventing data being inserted twice." Watch "Help needed in preventing data being inserted twice." New topic

Help needed in preventing data being inserted twice.

Devesh H Rao
Ranch Hand

Joined: Feb 09, 2002
Posts: 687

Hi all.
I have a jsp from which i post data to a controller servlet now the problem for me is if i am inserting data from jsp thru a save button and if i click the button in quick succession the data gets inserted twice. i can disable the buttons on the jsp but the solution will need to be implemented in every jsp. can it in any way be handled in the controller servlet so that the implementation remains only at one place and hence easily managable.
Thanx all in advace.
Devesh H Rao.
Andres Gonzalez
Ranch Hand

Joined: Nov 27, 2001
Posts: 1561
One of the solutions is to use a token. Before you display the JSP, create a random value (token), put it in the Session and place this value as a hidden value in your form.
when the user clicks the save button for the first time, your servlet will get the value from the hidden field (request.getParameter("myToken"))and compare it against your value in the Session. If the values are the same, remove your token from the session and process the data from the form (insert it to the DB).
Now , if the user hits the button again, you're application will try to compare again the value in the hidden field with the one in the session. Since you removed the value from the session, you know that the user pressed the button more than once, so you can discard that request and forward it directly to a thankyou.jsp, for example.
hope it helps..

I'm not going to be a Rock Star. I'm going to be a LEGEND! --Freddie Mercury
I agree. Here's the link:
subject: Help needed in preventing data being inserted twice.
It's not a secret anymore!