8
回答
java form 重复提交,后退再次提交
终于搞明白,存储TCO原来是这样算的>>>   
生成一个令牌保存在用户session中,在form中加一个hidden域,显示该令 
牌的值,form提交后重新生成一个新的令牌,将用户提交的令牌和session 

中的令牌比较,如相同则是重复提交.

----------------上面这段话,我没理解了。请帮帮解释下。非常谢谢

<无标签>
举报
7哥
发帖于3年前 8回/501阅
共有8个答案 最后回答: 3年前
这话的意思应该是为了避免重复提交的,首先在form中应该是随机产生一个令牌,当第一次提交时将这个令牌保存到session中,如果页面没有刷新或者其他触发令牌改变的事件,则令牌还是原来的,再次提交时和session中进行比对,一样的就是重复提交,不一样就不是咯!!
--- 共有 1 条评论 ---
7哥我没看清楚,你说的实在form中产生令牌... 这样就可以理解了;我想的是在action中产生令牌,存session和写到form。你这样说结果就是令牌一样的是重复 3年前 回复

引用来自“moziqi”的评论

在你的jsp页面session.setA...("token","ok");

在你获取同时,进行比较啊,

相同的时候是重复提交?还是不相同的时候是重复提交?
--- 共有 3 条评论 ---
hao5ang回复 @是雨声 : 尽信书不如无书 3年前 回复
7哥回复 @hao5ang : 我也是这个疑问,我怎么想都认为是不相同的时候才是重复提交 3年前 回复
hao5ang测试一下吧, 我认为不同的时候是重复提交. 3年前 回复

引用来自“moziqi”的评论

你自己在java文件remove不就可以了吗?
按照上面 那样描述的,token永远都是相等的。。。
--- 共有 2 条评论 ---
executor你好像做这个评论的这样,实现页面跳转,就可以防止了吧 3年前 回复
executor121212 3年前 回复

引用来自“laigous”的评论

这话的意思应该是为了避免重复提交的,首先在form中应该是随机产生一个令牌,当第一次提交时将这个令牌保存到session中,如果页面没有刷新或者其他触发令牌改变的事件,则令牌还是原来的,再次提交时和session中进行比对,一样的就是重复提交,不一样就不是咯!!
不明白的就是为什么“一样的就是重复提交,不一样就不是咯”,页面中的令牌和form中不是一样的吗?
--- 共有 1 条评论 ---
laigous肯定不是啊。可能是刷新页面或者修改了数据就变了。 3年前 回复
顶部