怎樣防止頁面被重複提交

2021-09-30 16:02:43 字數 495 閱讀 8190

今天在和同事除錯bug時,發現頁面以post方式提交的資料,在重新整理瀏覽器的時會重複提交。處理完這個問題後我寫下了這篇文章。

我現在知道可以處理重複提交的方式有兩種:

(1)使用token值。類似於驗證碼的處理方式。使用者在每次提交時由於token值不同,就不會出現這個問題了:

public class tokenprocesser {

在方法中呼叫時,在渲染這個頁面的方法時,生成token值並儲存到session中,而在處理form提交的action類裡,在session獲得此token值。如果相等則程式繼續,並呼叫上面的方法生成新的token值儲存到session中,否則結束程式,返回以前的頁面。

(2)頁面重定向

在action中處理完post 表單提交資料後,用get的方式重定向到原來的頁面。這個要根據不同的mvc框架來決定具體的用法。我使用的是sofamvc。

在sofa中,很簡單:直接返回檢視名稱。例如:return 「redirect:index.htm」

如何防止頁面重複提交

由於重複點選或者網路重發,或者nginx重發等情況會導致資料被重複提交 解決辦法 集群環境 採用token加redis redis單執行緒的,處理需要排隊 單jvm環境 採用token加redis或token加jvm記憶體 處理流程 1.資料提交前要向服務的申請token,token放到redis或...

如何防止頁面重複提交

思路 重複提交有兩方面的含義,一是操作方面的重複提交,旨在說明乙個客戶端,一次只能傳送乙個請求到服務端,如果發出後未收到服務端響應,再次提交,則視為無效提交 重複了 二是業務方面,同乙個表單,服務端處理了兩次,兩次都是合法的操作 不違反第一種含義 但是表單可能被處理了兩次,如像乙個賬號轉賬了兩次,金...

php 防止頁面重新整理重複提交

一.使用session防止重複提交 其實跟驗證碼一樣的原理,主要是生成session和input隱藏域,這邊我的 是在乙個頁面中處理。header content type text html charset utf 8 頁面編碼 session start 開啟session if isset p...