工做总结 项目中如何处理重复提交问题

在咱们的平常业务中,有一些业务咱们会须要咱们限制用户重复点击提交。前端

例如,在咱们的订单系统中,咱们应该防止用户重复点击下单,避免重复下单。redis

1. 前端的限制

首先须要前端人员的配合,页面样式只须要点击一次,点击一次就使用样式禁止点击[可是,没法真正防止重复提交,还得靠后端的限制]。后端

2. 后端的限制

后端能够采用token方案:服务器

  1. 当前页面第一次加载时,请求服务端获取惟一token
  2. 服务端生成token,并放入redis,接着返回token给客户端(能够放在cookie中或者header中,若是放在header中,须要前端帮忙)
  3. 客户端获取token,存入当前的页面
  4. 提交的时候的须要将页面的token提交给服务器
  5. 服务器得到页面的token和redis中的进行比较,比较同时删除token
String token = redis.get("token");
redis.delete("token");
String token1 = request.get("token");
if(token.equals(token1)){
	boolean flag = redisTemplate.opsForValue().setIfAbsent(token,111);
	if(flag){
		// 执行业务
	}
}
相关文章
相关标签/搜索