开发者社区> 问答> 正文

页面刷新或者后退,带来数据的重复提交,请教大神们帮忙? 400 报错

页面刷新或者后退,带来数据的重复提交,请教大神们帮忙? 400 报错 表单的action是:xxx.do,执行完这个请求后跳转到一个新页面,刷新新页面的时候 , 就出现了 重复请求xxx.do的情况,请教各位大神们,这个怎么解决哇,这个会造成数据的重复提交哇,小弟请教了。

展开
收起
爱吃鱼的程序员 2020-06-05 13:08:06 672 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    这个应该是会重复提交的,因为地址中暴露的还是你的action的地址。

    1.action返回之前页面重定向

    2.使用token令牌 (可以创建一个filter来专门过滤重复提交问题)

    3.验证码(其实跟token原理差不多)

    ######回复 @Nesson : OK 谢谢######回复 @萧夜 : 对这个类似的问题我以前考虑过,我的想法是,既然是用的人去故意刷新地址以达到重复提交的目的,那么就没有必要考虑对他的友好处理,他显然是做破坏,我们保证自己的数据没问题就可以。个人愚见,如果追求100%完美,那就老老实实做判断吧######回复 @Nesson : 这样做在网站里 会不会不友好 这个方法我用了 只是觉得 太不友好 所以没用 谢谢你的回答######回复 @萧夜 : 最近又发现一个很简单的解决办法,把action的method 约束为 RequestMethod = POST, 然后表单提交只用post方法,这样下次即便暴露提交地址,刷新的时候是默认为get方式,就报出405错误,然后做个405错误的页面就可以了######回复 @Nesson : 谢谢,第一次用,不太熟悉######正常情况下 你这个问题是不会出现的,xxx.do 执行 是在上一个页面执行的,与新页面无关,你看看代码,应该是其他问题######

    引用来自“尖刀”的答案

    正常情况下 你这个问题是不会出现的,xxx.do 执行 是在上一个页面执行的,与新页面无关,你看看代码,应该是其他问题
    我的流程是这样的:这个xxx.do请求---->数据的各种操作----->return 新页面 , 当我刷新 新页面的时候 是不是要重复这个过程,要是重复这个过程,就说明  数据的操作又做了一次
    ######

    引用来自“萧夜”的答案

    引用来自“尖刀”的答案

    正常情况下 你这个问题是不会出现的,xxx.do 执行 是在上一个页面执行的,与新页面无关,你看看代码,应该是其他问题
    我的流程是这样的:这个xxx.do请求---->数据的各种操作----->return 新页面 , 当我刷新 新页面的时候 是不是要重复这个过程,要是重复这个过程,就说明  数据的操作又做了一次
    数据的各种操作----->redirect新页面 
    ######我是刚用SpringMVC 之前 我在return 的时候是这样写的:return "redirect:/url/xx.jsp" 结果给我报错了 我就用了一次,也没再用过######我的流程是这样的:这个xxx.do请求---->数据的各种操作----->return 新页面 , 当我刷新 新页面的时候 是不是要重复这个过程,要是重复这个过程,就说明  数据的操作又做了一次------------是这样的:首先你得明白 新页面是如何获取到值的,你提一次action的时候,对数据操作取到的值,给了一些变量,比如说将数据库取到的name给了 变量A ,A=NAME 这个时候你页面有个B 得到A,B=A=NAME; 你刷新页面的时候,不会再提交ACTION 也不会再进行数据库操作,A的值也不会变,B 会先变成原来的值,然后再取到A的值 ######新页面的值是经过xxx.do请求时,放到model里面的,我每次刷新新页面都要走一遍xxx.do,然后才到新页面哇,######

    刷新 只是刷新新的页面,之前的操作 不会执行,不重复那个过程。。

    ######哥们 谢谢你 不过我这边经过刷新后 数据确实又更新了 而且浏览器提示数据再次提交,谢谢你啊######使用页面重定向,跳转到新页面如sendRedirect######加一个页面进行逻辑处理。同时承担页面跳转。记得传递returnurl哦。######view层用的是 freemarker不是jsp,谢谢你的回答
    2020-06-05 13:08:22
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载