突然一个问题在我脑海中浮现:在 Java 中,防止重复提交最简单的方案是什么?
这句话中包含了两个关键信息,第一:防止重复提交;第二:最简单。
于是爷就好奇,是单机环境还是分布式环境?
得到的反馈是单机环境,那就简单了,于是磊哥就开始装*了。
话不多说,我们先来复现这个问题。
- 模拟用户场景*
根据我调查的,大致的场景是这样的,如下图所示:
简化的模拟代码如下(基于 Spring Boot):
于是爷就想到:通过前、后端分别拦截的方式来解决数据重复提交的问题。
2.前端拦截
前端拦截是指通过 HTML 页面来拦截重复请求,比如在用户点击完“提交”按钮后,我们可以把按钮设置为不可用或者隐藏状态。
前端拦截的实现代码: