首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts1.x 重复提交辨析

2012-10-27 
Struts1.x 重复提交剖析在某些情况下,如果用户对一个HTML表单重复提交,Web应用应该必须能够判断用户的重复

Struts1.x 重复提交剖析
在某些情况下,如果用户对一个HTML表单重复提交,Web应用应该必须能够判断用户的重复提交行为,以做相应的处理。

Struts给出了一个参考实现。org.apache.struts.action.Action类中提供了一系列和Token有关的方法:


在这里会自动生成Token的隐藏域:


Action2: jsp页面提交给过来请求

 if(!isTokenValid(request))    {               System.out.println("重复提交TokenAction");               saveToken(request);               return (new ActionForward(mapping.getInput()));    }    else   {               resetToken(request);               System.out.println("重新设置Token!   TokenAction");    }   if(!isTokenValid(request)){    System.out.println("重复提交TokenAction");    saveToken(request);    return (new ActionForward(mapping.getInput()));}else{    resetToken(request);    System.out.println("重新设置Token!   TokenAction");}
判断是否是重复提交,如果重复提交就转发到默认在struts-config.xml中为Action2配置的错误页面中,并重新建立一个Token。如果不是重复提交就就从当前session中删除Token.
OK,就是这些了,如果你的应用中可以返回一个错误页面,那么你也可以在filter中应用Token这些方法,只不过需要对struts的jar包进行反编译,拿到自己的类中来用。

热点排行