网上看了一下令牌的介绍其中如下代码有点疑惑,else块中为什么要写saveToken(request);  呢? if   (isTokenValid(request,   true))   {   
  //   表单不是重复提交   
  //这里是保存数据的代码   
  }   else   {   
  //表单重复提交   
  saveToken(request);   
  //其它的处理代码   
  }   

解决方案 »

  1.   

    这里就是,生成一个新的Token 的意思,就可以防止表单重复提交
      

  2.   

    else中意味着重复提交,这样再savetoken产生新的token不就一样了吗,这样页面再点不就又可以重复提交了么?
      

  3.   

    我记得saveToken是将新生成的token存入session,也就是将原来的token替换掉,这样重复提交的时候,表单中的token和session中的token就不一样了,直接过滤掉了
      

  4.   

    建议 LZ 去看一下struts的源码,原理是,提交保存令牌,令牌就是在你的页面写入一个隐藏表单域,值为你的会话session的值,下次提交再去判断如果相同则为重复提交。