掌中招聘网 » 掌中论坛 » J2EE / EJB / JMS » 利用struts2   session防止数据重复提交
首页 上一页 下一页 尾页 
 本页主题: 利用struts2   session防止数据重复提交
 


扬戈

积分:60
发表主题:56




 发表于 2009-06-23 12:50 资料
楼主

目的是防止数据重复提交到库表
struts2本身有 <s:token/>拦截器来做到这点的,但项目里面别的问题,在提交表单时只能去掉这个拦截器。
所以想在action中提交表单的方法里面利用session来判断是否是重复提交
在调用后台service执行操作时,先判断session中是否有你放进去的那个值,没有才执行后台操作
成执行操作,往session里put一个值
但是这样session里的值会一直在,再一次填写并提交表单时会因为session没有清空而无法再保存数据

不知道session里什么时候放值,什么时候把值清掉呢?
我试了好多次都不成
回复1: 该回复于2009-06-22 09:30:22被管理员删除
回复2: 问题得到解答的机会是越来越小了
再也不是以前朋友所鼓吹的"在CSDN提问,就能解决问题"

回复3: 还可以 让提交一次后按钮不可用,

验证码等
回复4: 那就自己模仿一下 <s:token>拦截器的实现原理啊,每次提及表单时在session中存放一个随机的字符串,下次提交时对比一下如果两次的字符串一样的便是重复提交了啊,session中如果key值一样的话,多次存入的value值会覆盖的
回复5: 防止重复提交不是用的这个session吧,


你在你的action里面写个
Java code
saveToken(request);
就可以了啊
回复6: 这个问题每个人用的方法不一样。这又篇文章你看看
http://peixun.96963.com/resourse/tutorial-43.html
回复7: 采用JS控制不可靠
别的方法在struts2里不行
如果struts2还采用struts1的token令牌,就没有任何意义了。整的那么繁琐。那是技术的倒退。。。
回复8: struts2的令牌很简单 页面加个标签  配置一个拦截器 就ok了
回复9: 你可以使用同步令牌机制来防止表单的重复的提交,我上次也遇到这个问题了,后来就是用的这个办法!
回复10: 访问页面的时候往session中放入一个值,对应的在表单中加入一个hidden(与session的值一致),
提交到action中,如果session中对应的key有值并与提交的数据一致的话执行操作,
执行完成后清除session中的值。否则提示重复提交

首页 上一页 下一页 尾页 
 各地招聘导航
·北京 ·天津 ·上海
·西安 ·东莞 ·广州
·深圳 ·南京 ·杭州
·济南 ·南昌 ·兰州
·合肥 ·长沙 ·武汉
·成都 ·重庆 ·太原
·福州 ·沈阳 ·南宁
·海口 ·贵阳 ·郑州
·银川 ·西宁 ·昆明
·拉萨 ·长春
·石家庄  ·乌鲁木齐
·哈尔滨  ·呼和浩特
 各地兼职导航
·北京 ·天津 ·上海
·西安 ·东莞 ·广州
·深圳 ·南京 ·杭州
·济南 ·南昌 ·兰州
·合肥 ·长沙 ·武汉
·成都 ·重庆 ·太原
·福州 ·沈阳 ·南宁
·海口 ·贵阳 ·郑州
·银川 ·西宁 ·昆明
·拉萨 ·长春
·石家庄  ·乌鲁木齐
·哈尔滨  ·呼和浩特