第一句话有问题:
“当用户提交的时候”改为“当用户访问提交页面”,全文其实只提了一次提交。
全文意思是当用户访问提交页面,在服务器生成随机号并保存在表单的隐藏域中,用户填写完毕点击提交按钮,服务器比对随机号,服务器存在此随机号则是第一次提交,可以执行正常操作,然后销毁此随机号。如果此时用户再次点击提交,则服务器端的随机号已经被销毁了,就可以判断出是重复提交了。
当jsp表单提交时(这是什么提交,另一次页面提交?) --- 重复提交,
如果随机号相同的话,提示用户重复提交。
如果随机号不同的话,执行提交操作。
或者(看括号):
当用户提交的时候(进入到需要提交信息的页面),系统首先需要生成一个随机号,在服务器端进行保存并在jsp表单中绑定这个生成的随机号,
当jsp表单提交时(第一次页面提交)服务器端接收用户提交的这个随机号然后与服务器端保存的随机号进行对比(这就简单了,是第一次比对),
如果随机号相同的话,执行提交操作,并把服务器端保存的随机号销毁(第一次提交)。
如果不同的话提示用户重复提交(服务器端随即号已销毁)。
在客户端也可以做控制,就是用户点击提交按钮的时候把提交按钮设置成不可用状态。不过这个方法是不保险的,如果用户强制刷新页面的话会出问题!