https://www.cnblogs.com/yfsmooth/p/4516779.html
看了以下别人给的总结:
客户端上防止提交:
1.js控制阻止
2.设置HTTP报头,控制表单缓存,使得所控制的表单不缓存信息。
服务端防止提交:
1.session设置标志验证(token) (Spring提供了拦截器支持该方式)
2.自定义拦截器,通过判断本次与上次请求的url和参数是否相同判断是否相同进行查重。
个人使用的方式:
1.客户端对提交需要反馈,防止用户重复点。我在项目中通常使用的方式是:遮罩。使用一个代表正在进行(比如转圈)的图案遮住操作区。
2.服务器端通常使用token校验的方式,不适用自定义拦截器的原因是代码阅读成本增高(项目人员更换频繁,尽量使用常见的API)