Struts1.x 防刷新重复提交(Token)


Struts1.x 防刷新重复提交(Token 

   Token
防止刷新页面时造成的页面表单重复提交的问题: 
1
、首先要通过一个action方法生成Token令牌,生成一个随机数 
     this.saveToken(request);    //
生成Token     
     return mapping.findForward("success"); //
跳转到增加页面 

2
<%@ pageimport="org.apache.struts.taglib.html.Constants" %> 
     <%@ pageimport="org.apache.struts.Globals" %>
 
    
然后在页面上添加一个隐藏域 
     <input type="hidden"name="<%=Constants.TOKEN_KEY%>"   value="<%=session.getAttribute(Globals.TRANSACTION_TOKEN_KEY)%>"/>
 
      Hidden
的名称必须为Constants.TOKEN_KEY 
      Hidden
的值必须为session.getAttribute(Globals.TRANSACTION_TOKEN_KEY) 

3
、在Actionadd方法中,使用isTokenValid(request)验证Token,如果产生的Token令牌随机数不同,则 
跳转到错误页面,如果相同则把session中的Token删除,然后进行业务处理 
     if (!this.isTokenValid(request)) {
 
         this.saveToken(request);
 
         returnmapping.findForward("error");
 
     }else
 


     this.resetToken(request);
 
      //
业务代码 
     }

注意:使用token,必须使用struts1.x <html:form></html:form>的标签才能起效。

 

你可能感兴趣的:(struts)