Struts防止表单提交

Struts用Token来控制表单重复提交,首先会在Session中产生一个号码,然后加载表单,在表单中会有一个Hidden域保存这个号码。当表单提交的时候就会去Session中去找有没有这个号码,如果有就没问题,并且把这个号码消掉,如果没有就是重复提交。

在加载请求页面的Action中保存Token

@Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  // TODO Auto-generated method stub
  //防止表单重复提交
  this.saveToken(request);
  return mapping.findForward("success");
 }

然后在接收请求的Action中判断这个Token是否合法,如果不合法就返回错误页面,如果正确就是把这个Token消掉

@Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  if (!isTokenValid(request)) {
   //token无效,处理错误信息并返回错误页面
   mapping.getInputForward();
  }
  resetToken(request);
  return mapping.findForward("success");
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值