利用后退按钮进行重复提交的解决办法。

今天上班时,突然想到这个问题,网上查了些资料,自己也琢磨了下,找到一个解决的办法。如下:

 在生成提交页面的jsp中,给session中添加一个对象M。在提交以后,action中判断session中是否存在M这个对象,如果存在,则进行正当的提交行为,并且,把session中的M对象删除掉。这时,如果用户在页面上浏览器中按了后退按钮,会返回刚才提交的页面,但是只是在缓存中的静态页面,session中不会再添加M对象,所以,如果再次提交,那么在后台的action,会判断出session中的M对象为空,那么就返回错误页面即可。

注:也可以在进行提交页转发的action中进行session的设值。

 

以下是简单的核心代码:

jsp中:

<% String mn = Math.random()+""; //mn可以是任意对象。 session.setAttribute("mn",mn); %>

 

action中:

HttpServletRequest request = ServletActionContext.getRequest (); HttpSession session = request.getSession(); Object obj = session.getAttribute("mn"); if(obj==null){ //返回错误页面。 }else{ session.setAttribute("mn", null); //这里执行正常的提交业务 }

 

转载于:https://www.cnblogs.com/chaohi/archive/2009/07/31/2330411.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值