struts2防止表單重複提交 token

2021-05-22 06:08:32 字數 1039 閱讀 1413

struts

的token

(令牌)機制能夠很好的解決表單重複提交的問題,基本原理是:伺服器端在處理到達的請求之前,會將請求中包含的令牌值與儲存在當前使用者會話中的令牌值進行比較,看是否匹配。在處理完該請求後,且在答**送給

客戶端之前,將會產生乙個新的令牌,該令牌除傳給客戶端以外,也會將使用者會話中儲存的舊的令牌進行替換。這樣如果使用者回退到剛才的提交頁面並再次提交的

話,客戶端傳過來的令牌就和伺服器端的令牌不一致,從而有效地防止了重複提交的發生。

個人理解:使用者在請求包含

token

標籤的頁面,

struts

會計算出乙個令牌值,並把它新增進

session

,同時把令牌值賦給

jsp頁面的隱藏域

struts.token,

當使用者提交表單後,將請求包含的令牌值與

session

的令牌值比較,看是否匹配!同時產生新的令牌值,新令牌值覆蓋

session

中的舊令牌值,如果使用者回退到提交頁面再提交,則

struts.token

的值與session

中令牌值將不同,返回

invalid.token

結果。

用法:

第一步:在表單中加入標籤

如:

轉換成的網頁原始碼

第二步:在相應的

action

中新增***和

invalid.token檢視

① ②/show.jsp

/index.jsp ③

①.struts

預設***

②.阻止表單重複提交的***

③.重複提交後的跳轉檢視

注意:struts

一旦額外新增其他***後,就不會呼叫預設***,即①,因此要額外新增預設***,否則預設***提供的一些功能就無法使用

第三步:

invaid.token

頁面列印錯誤資訊,一樣可以使用

struts

標籤。如下:

struts2防止表單重複提交

struts 的 token 令牌 機制能夠很好的解決表單重複提交的問題,基本原理是 伺服器端在處理到達的請求之前,會將請求中包含的令牌值與儲存在當前使用者會話中的令牌值進行比較,看是否匹配。在處理完該請求後,且在答 送給 客戶端之前,將會產生乙個新的令牌,該令牌除傳給客戶端以外,也會將使用者會話中...

Struts2 防止表單重複提交

token是為了防止表單重複提交,token 原理大致為 1 顯示表單的那個 action 中使用 createtoken 生成乙個隨機的 token值,並存放在服務端 session或者cache中 並且傳遞乙份到頁面中 2 表單頁面使用乙個隱藏表單域獲取後端傳過來的 token值,該表單頁面提交...

struts2 註解 防止表單重複提交

註解 在struts2中使用註解,主要完成對action的定義。但諸如常量定義 定義等還需要在struts.xml中完成。需要引入struts2 convention plugin jar action基本註解示例 namespace value test 對於xml中的namespace test...