论坛首页 Java企业应用论坛

大家是如何解决重复提交的?在做JSP开发的时候.

浏览 11298 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-04-23  
我没有用客户端的JS或者别的技术,因为,我感觉客户端技术,只是提高对用户的响应速度的.

真正的验证是否重复提交还要在服务端做.

因为我没用什么框架,所以只好在JSP里面用JAVA逻辑写了一大段代码.
效果是可以达到防止重复提交.

我的基本思路是,将表的最后一条记录和要提交的记录,逐一按字段比较.
如果完全相同就不得提交(主键除外)

------------
不知道,有没有更方便,简单的办法?
   发表时间:2006-04-23  
我用隐藏值域加过滤器,一劳永逸。
0 请登录后投票
   发表时间:2006-04-24  
可以说的更详细点么
最好能附加一段代码.
谢谢.
0 请登录后投票
   发表时间:2006-04-24  
个人认为 还是要JS+server双重验证的
JS检查的好处是速度快  不管多么简单的检查  去server转一圈肯定是要慢的
所以尽量在JS做  然后JS处理不掉的 再到server处理
0 请登录后投票
   发表时间:2006-04-24  
我同意楼上的说法,不过,现在就是对如何在服务器端做这个不太明了,我是写了一大端java代码在jsp里面来防止点击浏览器的刷新按钮的时候产生重复提交的。

应该有更好的办法吧。
0 请登录后投票
   发表时间:2006-04-24  
附加一个隐藏域,同时加入session中.
执行业务前进行验证.清除session中的信息.
验证失败, 返回错误页面
验证通过, goon
0 请登录后投票
   发表时间:2006-04-24  
knight6892 写道
附加一个隐藏域,同时加入session中.
执行业务前进行验证.清除session中的信息.
验证失败, 返回错误页面
验证通过, goon


对,具体可以参考开源框架token的处理(struts webwork)
0 请登录后投票
   发表时间:2006-04-25  
wangcity 写道
我没有用客户端的JS或者别的技术,因为,我感觉客户端技术,只是提高对用户的响应速度的.

真正的验证是否重复提交还要在服务端做.

因为我没用什么框架,所以只好在JSP里面用JAVA逻辑写了一大段代码.
效果是可以达到防止重复提交.

我的基本思路是,将表的最后一条记录和要提交的记录,逐一按字段比较.
如果完全相同就不得提交(主键除外)

------------
不知道,有没有更方便,简单的办法?


服务端生成随机的token传给页面并且在服务器端保存(内存,cache,数据库  存哪里随你的便。我是放在cache中的)
页面提交时验证token是否有效。有效的话让这个token失效后继续其他事物。我们一般要将这段代码同步掉,所以会对性能造成一定的影响。

这个办法只能防止同一个页面多次提交。如果一个页面正常提交后,用户第二次提交一样的数据我们认为也是一次有效的提交。
0 请登录后投票
   发表时间:2006-04-27  
判断来源页面
当前页面刷新肯定是不过的
0 请登录后投票
   发表时间:2006-04-28  
:o 为什么不用cookie来处理呢.......
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics