联系电话:400-960-8005


资质荣誉
奖牌 奖牌 奖牌 奖牌
就业明星
Java开发您现在的位置:主页 > Java开发 > Java web开发中如何防止表单重复提交
Java web开发中如何防止表单重复提交
浏览次数:190  添加时间:2017-04-12 10:20:26
       表单重复提交是在多用户Web应用中最常见、带来很多麻烦的一个问题。那么常见的出现表单重复提交是由于那些情况引起的呢?而我们Java web开发人员应该如何避免这些表单重复提交的情况发生呢?西安兆隆IT云学院资深Java web培训讲师总结自身的项目开发经验为大家讲解web开发中如何防止表单的重复提交。有web前端的方法,也有后端的限制方法,所以无论是web前端培训学习还是web应用程序开发人员都值得学习一下。
导致Java web应用表单重复提交的行为一般有如下几种:

1、点击提交按钮两次。
2、点击刷新按钮。
3、使用浏览器后退按钮重复之前的操作,导致重复提交表单。
4、使用浏览器历史记录重复提交表单。
5、浏览器重复的HTTP请求。

在了解到导致表单重复提交的常见因素之后,web应用程序开发人员应该如何应对这几种情况,或者说用什么方法避免这些情况的发生呢?
 
学习Java web开发应该掌握的几种防止表单重复提交的方法:
 
       禁掉提交按钮。表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了。
 
       Post/Redirect/Get模式。在提交后执行页面重定向,这就是所谓的Post-Redirect-Get (PRG)模式。简答点说就是,当用户提交了表单后,去执行一个客户端的重定向,转到提交成功信息页面。
 
       避免用户按F5导致的重复提交,而其也不会出现浏览器表单重复提交的警告,也能消除按浏览器前进和后退按导致的同样问题。
 
       在session中存放一个特殊标记。在表单页面被请求时,生成一个特殊的字符串,存在session中,同时将其放在表单的隐藏域里。接受处理表单数据时,检查标识字串是否存在,并立即从session中删除它,然后再进行正常的数据处理。如果发现表单提交里没有有效的标志串,这说明表单已经被提交过了,忽略这次提交。
 
       在数据库里添加约束。在数据库里添加唯一约束或创建唯一索引,防止出现重复数据。这是最有效的也是最为直接的防止重复提交数据的方法。
 
       相信这几种方法都可以让你的web应用程序有效的解决了表单重复提交的烦恼,在这里西安兆隆小编提醒大家尽可能的尝试一下这几种方法在自己的练习程序中,动手操作才能更好的理解和掌握这些方法,另外多动手也是学习软件开发和成为优秀程序员的必要条件。


来源:西安兆隆IT云学院(www.ityunxueyuan.com)



版权所有 西安兆隆计算机云学院
大话南门分校:西安市碑林区长安北路
高新分校:陕西省西安市雁塔区科技路
学院简介|课程详情|学员就业|强大师资|校园新闻