动态ActionForm,token怎么用啊

来源:百度知道 编辑:UC知道 时间:2024/06/05 01:08:58
动态ActionForm,token怎么用啊
1楼,看好问题在回答OK?

Struts使用Token机制,来防止恶意的破坏和重复提交问题,也就是点击后退后在再提交,这是Struts无法发现的,在form中生成一个token码,
在session中也保存有一个同样的token码,当表单提交后,判断两个token码向等后,就会改变session中的这个token码,当然在用回退后,
form的token码是不会变的,在提交,还会判断两个token码是否相等,如果不等就会抛出异常,证明这是过时的垃圾数据。
但是必须要使用struts标签,struts会自动生成一个隐藏域,来保存token码
而且必须要定义一个ActionForm的子类
void saveToken(HttpServletRequest request)方法用于将在客户端生成的token码,保存在session中。
void resetToken(HttpServletRequest request)方法用于重置token码,生成新的token码。
boolean isTokenValid(HttpServletRequest request,boolean reset)判断token码是否相等,并且是否重置token码。reset是设定是否重置token码,一般设为true。

设置token码
public ActionForward toadd(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws Exception
{
saveToken(request);
return mapping.findForward("next");
}

验证token码
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequ