防止表單重複提交的兩種方式

2021-06-28 04:08:21 字數 782 閱讀 1102

1)通過重定向

採取請求**的方式完成表單內容的新增會造成內容的重複插入。

當向servlet傳送一條增加記錄的請求後,servlet首先向資料庫增加一條記錄,然後又從資料庫中查詢出所有資料,接著**到另乙個頁面,這時,頁面上瀏覽器的位址顯示的是servlet的位址,當使用者重新整理頁面時,又會向servlet傳送一條新增請求,這樣會導致資料庫中重複資料不斷增加。

解決辦法:採用重定向的方式新增資料不會導致資料的重複插入或刪除。

向servlet傳送乙個新增請求時,這個servlet只執行新增操作,然後重定向到另乙個servlet進行資料的查詢,最後**到顯示頁面。

2)通過session token(session令牌)

當客戶端第一次向伺服器端傳送請求的時候,伺服器會通過token標籤,並且會將這個字串放到session中,然後將這個字串傳送給客戶端,在提交之前頁面上就有了乙個字串,伺服器端也有乙個字串,兩個字串的內容是一樣的,當你提交的時候,伺服器會比較兩個字串是不是一樣的,如果是一樣的,就是第一次提交,並且更新伺服器端的字串;如果此時再次重複提交,伺服器端的字串已經發生改變而頁面中的那個字串還沒有變,這時,你提交的時候兩個字串就不匹配了,伺服器端就會認為是第二次提交,這樣,伺服器就不會再讓提交了,進而轉向invalid.token那所指向的頁面。

其實就是第二次與第一次jsp頁面向伺服器提交的內容和第一次一模一樣,當在瀏覽器上返回前一頁時,表單中提交的內容和第一次也是易語言的,所以這種情況下提交也會失敗,當返回前面一夜然後重新整理,重新整理相當於向伺服器傳送了一次請求,所以這樣提交就可以成功。

防止表單重複提交的兩種方式

a 通過重定向 struts default.xml b 通過session token session 令牌 當客戶端請求頁面時,伺服器會通過token標籤生成乙個隨機數,並且將該隨機數放置到session當中,然後將該隨機數發向客戶端。如果客戶第一次提交,會將該隨機發往伺服器端,伺服器會接收到該...

防止表單重複提交的兩種方式

1 通過重定向 action2 execute myexecute 2 通過session token session 令牌 當客戶端請求頁面時,服務 器會通過token 標籤生成乙個隨機數,並且將該隨機數放置到session 當中,然後將該隨機數發向客戶端 如果客戶第一次提交,那麼會將 該隨機數發...

php 防止表單重複提交兩種實現方法

php 防止表單重複提交 1 前端解決 方法一 可以通過前端來解決。當使用者點了提交按鈕之後,先使用js進行有效性判斷,沒問題後,將提交按鈕 禁用 掉。然後再提交!方法二swgcutijcb 使用ajax提交表單。點了提交按鈕後,禁用提將按鈕,或者設定乙個狀態值,將其設為1,表示正在提交。再提交時判...