页面刷新或者后退,带来数据的重复提交,请教大神们帮忙? 400 报错 表单的action是:xxx.do,执行完这个请求后跳转到一个新页面,刷新新页面的时候 , 就出现了 重复请求xxx.do的情况,请教各位大神们,这个怎么解决哇,这个会造成数据的重复提交哇,小弟请教了。
这个应该是会重复提交的,因为地址中暴露的还是你的action的地址。
1.action返回之前页面重定向
2.使用token令牌 (可以创建一个filter来专门过滤重复提交问题)
3.验证码(其实跟token原理差不多)
######回复 @Nesson : OK 谢谢######回复 @萧夜 : 对这个类似的问题我以前考虑过,我的想法是,既然是用的人去故意刷新地址以达到重复提交的目的,那么就没有必要考虑对他的友好处理,他显然是做破坏,我们保证自己的数据没问题就可以。个人愚见,如果追求100%完美,那就老老实实做判断吧######回复 @Nesson : 这样做在网站里 会不会不友好 这个方法我用了 只是觉得 太不友好 所以没用 谢谢你的回答######回复 @萧夜 : 最近又发现一个很简单的解决办法,把action的method 约束为 RequestMethod = POST, 然后表单提交只用post方法,这样下次即便暴露提交地址,刷新的时候是默认为get方式,就报出405错误,然后做个405错误的页面就可以了######回复 @Nesson : 谢谢,第一次用,不太熟悉######正常情况下 你这个问题是不会出现的,xxx.do 执行 是在上一个页面执行的,与新页面无关,你看看代码,应该是其他问题######刷新 只是刷新新的页面,之前的操作 不会执行,不重复那个过程。。
######哥们 谢谢你 不过我这边经过刷新后 数据确实又更新了 而且浏览器提示数据再次提交,谢谢你啊######使用页面重定向,跳转到新页面如sendRedirect######加一个页面进行逻辑处理。同时承担页面跳转。记得传递returnurl哦。######view层用的是 freemarker不是jsp,谢谢你的回答版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。