Struts2 標籤防止重複提交

2021-09-06 05:56:29 字數 781 閱讀 6314

一、防止重複提交原理:

首先,在頁面訪問的時候server端產生乙個標誌位,其儲存在session中,同時該標誌位放到訪問的頁面的某個元素中(通常為隱藏域);

其次,在session存在的有效時間內,沒有其它操作時其值保持不變,當提交表單到server端時,會判斷client端提交過來的標誌位和server端的標誌位的值是否相等;

最後,判斷標誌位的值,如果相等,則執行自己期望的操作;如果不相等,則轉向指定的頁面;

1、jsp使用< s:token/ >標籤的時候,struts2會建立乙個uuid(全域性唯一的字串)放在session中,並且會成為乙個hidden放在form中。 如

2、token***會判斷客戶端form提交的token值和session中儲存的值是否equals。如果equals則執行action。否則***直接返回invaid.token結果轉向對應的檢視,action對應的方法也不會執行;

二、例子

input.jsp(方法為get時候,重新整理瀏覽器不提示重新傳送,可能會重複提交)

上面的form對應頁面生成的源**(右鍵,檢視源**)

struts.xml

/input.jsp

/addok.jsp

/error.jsp

Struts2 防止重複提交

struts2 使用 來檢查表單是否重複提交,它採用同步令牌的方式來實現對表單重複提交的判斷。首先需要在表單中使用 標籤建立乙個新的令牌值,並用你所指定的令牌名把令牌儲存到 session 中。而這個令牌值是隨即產生的經過加密的字串行,不會重複。其次需要為 action 配置 tokeninterc...

struts2防止重複提交

struts2的防止重複提交 也使用到了 token 令牌機制 並且使用到了struts2 的乙個叫token 的過濾器 使用方法 看看我們專案的例子 1.首先在struts的配置檔案中 給你的action 加上 token 過濾器 page user userlist.jsp page succe...

struts2的防止重複提交

使用方法 看看我們專案的例子 1.首先在struts的配置檔案中 給你的action 加上 token 過濾器 xml page user userlist.jsp page success.jsp user queryall.action page user updateuser.jsp page...