web服务器有多个节点如何防止表单重复提交

我知道有通过js控制页面,还有利用Session生成唯一标识符,但是当web服务器有多个节点如何防止表单重复提交

鸿蒙传说
浏览 536回答 4
4回答

郎朗坤

推荐您看下说说API的防重放机制 目前我们公司就是用的这个机制。

阿波罗的战车

在springmvc配置文件中加入拦截器的配置,当转到页面的请求到来时,生成token的名字和token值,一份放到redis缓存中,一份放传给页面表单的隐藏域。当表单请求提交时,拦截器得到参数中的tokenName和token,然后到缓存中去取token值,如果能匹配上,请求就通过,不能匹配上就不通过。这里的tokenName生成时也是随机的,每次请求都不一样。而从缓存中取token值时,会立即将其删除(删与读是原子的,无线程安全问题)。

慕沐林林

看下这个 蘑菇街防重复请求处理的实践与总结 链接描述

慕标5832272

一次form请求只能去一个web节点就可以了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java