防止Servlet刷新重复提交

   在做JSP+Servlet的时候,这样一种情况很常见:

   有个正在新增记录的页面 add.jsp,填写完后点击提交,假设提交给CRUDServlet,跳转到list.jsp,此时在list.jsp页面按 F5 刷新的话,会发现此条记录被插入了多次,很显然,是因为反复执行了CRUDServlet造成的,下面看解决办法。

    在add.jsp页面上:
<%
    request.getSession().setAttribute("token", true);
%>

    在CRUDServlet上:
if (null != req.getSession().getAttribute("token"))
{
     req.getSession().removeAttribute("token");
     //插入数据库,显示list.jsp
}else{
     //查找数据库,显示list.jsp
}
    道理我想大家都看得懂,不知道这样会不会带来其他问题,至少我是这样解决的,大家可以狂吐槽 o(∩_∩)o...

   注:多谢 @ jqbmaster 博友,某些情况下可以用 重定向 response.sendredirect() 改变了URL。

   我的博客其他文章列表      
http://my.oschina.net/helu  








  

你可能感兴趣的:(防止Servlet刷新重复提交)