表單的重複提交將加重伺服器的負擔,且可能導致錯誤操作,故需要進行避免。
1. 什麼是表單的重複提交?
若重新整理表單頁面後再提交則不是表單的重複提交;表單的重複提交是指,在不重新整理表單頁面的前提下,如發生以下任意情況:
2. 防止表單重複提交的基本原理
基本原理如下圖所示:
3. 具體實現步驟
第一步:在表單中新增s:token子標籤;其作用是生成乙個隱藏域,並在session中新增乙個與隱藏域的值相同的屬性值。核心示例**如下所示:
第二步:使用token或tokensession***;核心示例**如下所示:
name="testtoken"
class="com.qiaobc.struts.action.testtokenaction"
method="execute">
name="token">
interceptor-ref>
name="defaultstack">
interceptor-ref>
/success.jspresult>
name="invalid.token">/token-error.jspresult>
action>
注意:可以使用s:actionerror標籤來顯示重複提交的錯誤訊息,該訊息同樣可以在國際化資源檔案中覆蓋,具體可參看struts-messages.properties檔案。 struts2防止表單重複提交
struts 的 token 令牌 機制能夠很好的解決表單重複提交的問題,基本原理是 伺服器端在處理到達的請求之前,會將請求中包含的令牌值與儲存在當前使用者會話中的令牌值進行比較,看是否匹配。在處理完該請求後,且在答 送給 客戶端之前,將會產生乙個新的令牌,該令牌除傳給客戶端以外,也會將使用者會話中...
Struts2 防止表單重複提交
token是為了防止表單重複提交,token 原理大致為 1 顯示表單的那個 action 中使用 createtoken 生成乙個隨機的 token值,並存放在服務端 session或者cache中 並且傳遞乙份到頁面中 2 表單頁面使用乙個隱藏表單域獲取後端傳過來的 token值,該表單頁面提交...
表單重複提交
1.session token的方式 當表單載入時候,前端向伺服器申請乙個token,同時,伺服器將token放在session中。當提交表單時候,引數中帶著token,伺服器校驗token,如果相同則放行,同時清除session。如果不同,則說明重複提交。需要注意的是,如果請求返回了,或者重新整理...