Struts中防止任意形式的重复提交

来源:互联网 发布:我的网络文明宣言 编辑:程序博客网 时间:2024/05/16 02:18

注:这个说的挺全面,考虑到了两种情况,一个是超连接,一个是表单

原文是这里


Struts Token 机制可以解决这个问题。

1.   防止通过超链接重复访问 Struts Action

如果我们要防止 A 的默认页面 J 中指向 K 的超链接重复提交数据,按照下列步骤即可:

a.   如果 J 是从 Struts Action 转发而来,我们要在该 Struts Action execute 方法中添加下面的一行:

    saveToken(request);

b.   如果 J 不是从 Struts Action 转发而来,那么新建一个 Struts Action ,在该 Struts Action excute 方法中增加上面的一行,然后再从该 action 转到 J 页面。

c.   J 页面中使用 Struts 标签生成指向 K 的超链接,如:

   <html:link action="/deleteLayoutAction?layoutId=0" transaction="true" >delete</html:link>

   注意红色字体部分。

d.   <html:link> 标签指向的 action excute 方法中加入下面的代码:

   if (!isTokenValid(request)) {

                     return mapping.findForward(" 这种情况下就是重复提交,转到相应的页面 ");

              }

e All Done.

2.   防止通过表单重复提交数据。

a.   如果 J 是从 Struts Action 转发而来,我们要在该 Struts Action execute 方法中添加下面的一行:

    saveToken(request);

b.   如果 J 不是从 Struts Action 转发而来,那么新建一个 Struts Action ,在该 Struts Action excute 方法中增加上面的一行,然后再从该 action 转到 J 页面。

c.   J 页面中表单 Action 属性指向的 Struts action excute 方法中加入下面的代码:

   if (!isTokenValid(request)) {

           saveToken(request);

                     return mapping.findForward(" 这种情况下就是重复提交,转到相应的页面 ");

   saveToken(request);

              }

e All Done.
 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 双户口注销学历怎么办 户口注销了社保怎么办 科一指纹录不上怎么办 右倒库右边太宽怎么办 手机录不了指纹怎么办 6sp指纹不灵敏怎么办 手指纹汗多怎么办? 手指没指纹怎么办身份证 青岛身份证丢了怎么办 新身份证没激活怎么办 坐轻轨没身份证怎么办 办身份证指纹录不上怎么办 指纹固化剂干了怎么办 指纹解锁没反应怎么办 荣耀v8指纹失灵怎么办 指纹多次不匹配怎么办 华为指纹被禁用怎么办 手脱皮没有指纹怎么办 手脱皮手机指纹怎么办 手脱皮录指纹怎么办 科二指纹打不上怎么办 三星手机无法解锁怎么办 iphone7指纹坏了怎么办 苹果8录不上指纹怎么办 手机套总是粘指纹怎么办 华为p9指纹禁用怎么办 华为p10升级失败怎么办 手机指纹锁没反应怎么办 华为手机指纹禁用怎么办 excel输入值非法怎么办 excel表数字乱码怎么办 excel表格打不开了怎么办 表格中数字乱码怎么办 手机颜色变了怎么办 身份证上的字母怎么办 身份证被盗用贷款怎么办 刑拘在逃不归案怎么办 在逃人员抓不到怎么办 卖假烟被网上追逃怎么办? 同事贷款不还怎么办 支付宝怎么办信用卡2