在web开发中经常遇到重复提交的问题,比如你要插入到数据库中一些纪录,是通过form标单提交的,在提交后的那个页面,如果你刷新页面,则你在填写信息的那个页面将重提交一次,昨天写了一个方法,与struts解决重复提交的类似,比较的简单,如下:
在表单页:设置一个隐藏域,<input type="hidden" name='isrefresh' value="<%=System.currentTimeMillis()%>">
再写个类判断是不是重复提交:
package jnswjc.cognizance.util;
import javax.servlet.http.HttpServletRequest;
public class Isrefresh {
/**
* 判断是否是刷新页面重复提交
* @param req
* @param value
* @return
*/
public static boolean isRefresh(HttpServletRequest req,String value)
{
String isrefresh=req.getSession().getAttribute("isrefresh")==null?"":req.getSession().getAttribute("isrefresh").toString();
if("".equals(isrefresh))
{
req.getSession().setAttribute("isrefresh",value);
return false;
}
else
{
if(isrefresh.equals(value))
{
return true;
}
}
return false;
}
}
在需要判断是不是重复提交的地方调用方法isRefresh,即可判断
在表单页:设置一个隐藏域,<input type="hidden" name='isrefresh' value="<%=System.currentTimeMillis()%>">
再写个类判断是不是重复提交:
package jnswjc.cognizance.util;
import javax.servlet.http.HttpServletRequest;
public class Isrefresh {
/**
* 判断是否是刷新页面重复提交
* @param req
* @param value
* @return
*/
public static boolean isRefresh(HttpServletRequest req,String value)
{
String isrefresh=req.getSession().getAttribute("isrefresh")==null?"":req.getSession().getAttribute("isrefresh").toString();
if("".equals(isrefresh))
{
req.getSession().setAttribute("isrefresh",value);
return false;
}
else
{
if(isrefresh.equals(value))
{
return true;
}
}
return false;
}
}
在需要判断是不是重复提交的地方调用方法isRefresh,即可判断