原文地址 [url]http://wanchong958.iteye.com/blog/233791[/url]
// 页面代码start
<%
Random random = new Random();
//生成随机flag,
Integer flag=new Integer(random.nextInt());
session.setAttribute("flag",flag);
%>
//form代码
<input type=hidden name="flag" value="<%=flag%>">
//页面代码end
//处理表单代码 start
Integer flag =new Integer(Integer.parseInt(request.getParameter("flag")));
HttpSession session=request.getSession();
if (flag.equals(session.getAttribute("flag"))){
//在此调用dao
destroyFlag(session);
} else {
System.out.println("重复提交");
}
/**
* 销毁flag
* @param session
*/
public void destroyFlag(HttpSession session) {
session.removeAttribute("flag");
}
// 页面代码start
<%
Random random = new Random();
//生成随机flag,
Integer flag=new Integer(random.nextInt());
session.setAttribute("flag",flag);
%>
//form代码
<input type=hidden name="flag" value="<%=flag%>">
//页面代码end
//处理表单代码 start
Integer flag =new Integer(Integer.parseInt(request.getParameter("flag")));
HttpSession session=request.getSession();
if (flag.equals(session.getAttribute("flag"))){
//在此调用dao
destroyFlag(session);
} else {
System.out.println("重复提交");
}
/**
* 销毁flag
* @param session
*/
public void destroyFlag(HttpSession session) {
session.removeAttribute("flag");
}
本文介绍了一种通过生成随机flag并存储在session中来防止表单重复提交的方法。该方法在用户提交表单前将随机生成的flag作为隐藏字段加入到表单中,并在后端验证提交的flag是否与session中保存的一致。
1万+

被折叠的 条评论
为什么被折叠?



