The third way is to create unique index in your database table. Then wrap your sql insert statement with a try catch.
When user tries to refresh the submitted form, it will try to insert the duplicates in your database table, but the unique index ensures your table integrity and therefore throws an exception. You can handle the exception in a graceful way so that user doesn't see the ugly exception. [ September 02, 2005: Message edited by: Choon-Chern Lim ]