我知道有通過js控制頁面,還有利用Session生成唯一標(biāo)識符,但是當(dāng)web服務(wù)器有多個節(jié)點(diǎn)如何防止表單重復(fù)提交
4 回答

阿波羅的戰(zhàn)車
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個贊
在springmvc配置文件中加入攔截器的配置,當(dāng)轉(zhuǎn)到頁面的請求到來時,生成token的名字和token值,一份放到redis緩存中,一份放傳給頁面表單的隱藏域。
當(dāng)表單請求提交時,攔截器得到參數(shù)中的tokenName和token,然后到緩存中去取token值,如果能匹配上,請求就通過,不能匹配上就不通過。這里的tokenName生成時也是隨機(jī)的,每次請求都不一樣。而從緩存中取token值時,會立即將其刪除(刪與讀是原子的,無線程安全問題)。
添加回答
舉報
0/150
提交
取消