本文转载自微信公众号“Java中文社区”,作者:老王。转载本文请联系Java中文社区公众号。某天突然有朋友问雷哥:在Java中,防止重复提交最简单的方案是什么?这句话包含两个关键信息,第一:防止重复提交;第二:最简单。于是雷问他,是单机环境还是分布式环境?他得到的反馈是单机环境,所以很容易,于是雷开始安装*.话不多说,先复现一下这个问题。根据朋友的反馈,大概的场景是这样的,如下图:简化后的模拟代码如下(基于SpringBoot):importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;@RequestMapping("/user")@RestControllerpublicclassUserController{/***重复请求方法*/@RequestMapping("/add")publicStringaddUser(Stringid){//业务代码...系统.out.println("添加用户ID:"+id);return"执行成功!";}}于是雷哥想到了通过分别拦截前端和后端来解决数据重复提交的问题。前端拦截前端拦截是指通过HTML页面拦截重复的请求。例如,用户点击“提交”按钮后,我们可以将该按钮设置为不可用或隐藏。执行效果如下图所示:前端拦截的实现代码:
