Java web开发中如何防止表单重复提交
2018年04月27日 08:44供稿中心:兆隆教育
摘要:
表单重复提交是在多用户Web应用中最常见、带来很多麻烦的一个问题。那么常见的出现表单重复提交是由于那些情况引起的呢?而我们Java web开发人员应该如何避免这些表单重复提交的情况发生呢?
表单重复提交是在多用户Web应用中最常见、带来很多麻烦的一个问题。那么常见的出现表单重复提交是由于那些情况引起的呢?而我们Java web开发人员应该如何避免这些表单重复提交的情况发生呢?兆隆教育资深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应用程序有效的解决了表单重复提交的烦恼,在这里西安兆隆小编提醒大家尽可能的尝试一下这几种方法在自己的练习程序中,动手操作才能更好的理解和掌握这些方法,另外多动手也是学习软件开发和成为优秀程序员的必要条件。
文章来源:www.zhaolongedu.com