如何避免表单重复提交信息
1、首先创建一个生成令牌的工具类,然后开始编写该工具类。
2、我这里采用单例模式,单例模式是一种常用的软件设计模式。通过单例模式可以保证一个类只有一个实例并且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。单例模式需要满足三点:
3、编写生成token的方法,这个工具类编写完成。生成令牌方法如下所示:
4、在编写跳转到填写信息的页面方法时,调用token工具类创建令牌,并且放到session会话中。例如:
5、页面的form表单如下,将存入session会话中的token令牌写到form表单中,一起提交。
6、编写一个方法,验证用户是否重复提交了表单,重复提交表单返回true,否则返回false,分为3种情况判断用户是否重复提交表单。1、如果用户提交的表单数据中没有token,则用户是重复提交了表单2、如果当前用户的Session中不存在Token(令牌),则用户是重复提交了表单3、存储在Session中的Token(令牌)与表单提交的Token(令牌)不同,则用户是重复提交了表单。具体代码如下:
7、编写提交方法,首先调用步骤6的方法进行验证,如果非重复提交,那么移除session中的token令牌,执行下边的操作。
8、还可以通过js控制,当重复提交时点击提交按钮无效,定义一个变量标识是否重复提交,通过这个变量的值的变化进行判断,是否触发提交事件。例如:
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。