在web中,防止刷新带来的数据插入

在web开发中,自己对表的增删查改是非常基本的操作,在编辑页面进行插入数据完成保存到数据库中时候,如果刷新页面将插入一条重复的数据。自己解决办法,用session request 令牌机制。

 

自己编写的一个工具列

 

package com.wei.ssi.utils;

/**
 * 防止表单重复提交工具
 * @author Sunny
 *
 */
public class TokenUtils {

 private static String cons = "@_____@token@________@";

 public static String setToken(javax.servlet.http.HttpServletRequest request) {
  javax.servlet.http.HttpSession session = request.getSession();
  String token = String.valueOf(java.util.UUID.randomUUID())
    + String.valueOf(System.currentTimeMillis());
  session.setAttribute("@_____@token@________@", token);
  String html = "<input type=\"hidden\" name=\"@_____@token@________@\" value='"
    + token + "'/>";
  return html;
 }

 public static boolean isToken(javax.servlet.http.HttpServletRequest request) {
  javax.servlet.http.HttpSession session = request.getSession();
  String token = (String) session.getAttribute(cons);
  if (token == null)
   token = "";
  String tv = request.getParameter(cons);

  session.removeAttribute(cons);
  return token.equals(tv);

 }
}

 

用的springmvc 框架在 save 方法里加上

@RequestMapping("/save")
 public ModelAndView save(HttpServletRequest request,SmSysparameter bean){
  //防止表单重复提交
  if(!TokenUtils.isToken(request)){
    log.error("表单重复提交");
    return new ModelAndView("duplicateSubmit");
  }

    ………………………………

 }

 

在jsp 页面上加上

<%=com.wei.ssi.utils.TokenUtils.setToken(request) %>

就可以实现了,效果如图

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值