防止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  








  

转载于:https://my.oschina.net/helu/blog/171193

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值