防止任意形式的重复提交

注:这个机制解决了重复提交导致的数据异常。有两种情况:1.超链接 2.表单提交
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.
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实际上,`SimpleDateFormat`并不支持任意形式的时间格式,它需要根据预定义的日期时间格式模式进行解析。这些模式由一系列字符组成,用于指定日期时间的格式。 `SimpleDateFormat`类支持的日期时间格式模式有一定的限制,以下是一些常用的模式字符: - `G`:Era 设计ator (Text: AD) - `y`:年份 (Number: 1996; Year: 96) - `M`:月份 (Text & Number: July & 07) `d`:日期 (Number: 10) - `H`:小时 (0-23) (Number: 0) - `m`:分钟 (Number: 30) - `s`:秒 (Number: 55) - `S`:毫秒 (Number: 978) - `E`:星期几 (Text: Tuesday) - `D`:一年中的天数 (Number: 189) - `F`:一月中的星期几 (Number: 2) - `w`:一年中的星期数 (Number: 27) - `W`:一月中的星期数 (Number: 2) - `a`:上午/下午指示符 (Text: PM) - `k`:小时 (1-24) (Number: 24) - `K`:小时 (0-11) (Number: 0) - `z`:时区 (Text & Number: Pacific Standard Time & PST) - `'`:引号字符 (例如,'yyyy-MM-dd' 将解析为 yyyy-MM-dd 字符串) 这些字符可以按照需要组合,形成自定义的日期时间格式模式。但请注意,`SimpleDateFormat`并不支持任意形式的时间格式,它需要符合预定义的模式。 如果您需要解析的时间格式与预定义的模式不匹配,或者需要处理更复杂的时间格式,可以考虑使用其他时间处理库,例如 Joda-Time 或 java.time 包下的类(Java 8+)。这些库提供了更灵活和全面的时间处理功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值