現在網上看springmvc解決重複提交的方案,大多數是用令牌的形式,提交表單時附帶乙個令牌。這個思路很好,但是我個人不太喜歡,所以基於spring***機制,我做了乙個特殊的解決重複提交的方案。
首先看handlerinterceptor這個介面:
裡面有3個方法,分別是:
public void aftercompletion(httpservletrequest request,httpservletresponse response ,object arg2,exception exception) throw exception;基於spring切面程式設計的思想,我是先在aftercompletion中,操作session存放了上次訪問的url與訪問時間
//獲取url
stringbuffer requesturl = new stringbuffer(request.getrequesturi());
string contextpath = request.getcontextpath();
requesturl.delete(requesturl.indexof(".action"),requesturl.length());
string trueurl = requesturl.tostring();
trueurl=trueurl.replacefirst(contextpath+"/","");
//存放至session中
session.setattribute("formertime",system.currenttimemillis());那麼,咱們在重複提交的時候,只需要在posthandle中判斷兩件事情
1、第二次提交時,與第一次提交時的url是否相同;
2、第二次提交時,與第一次提交時的時間相差是否過短;
當然,執行順序是可以調整的但是大概思路是這樣
大家可以提一下意見以及其他的解決方案0.0
更新url與請求時間寫入乙個方法中,然後分別在
posthandle,prehandle,aftercompletion中呼叫
當然,在posthandle呼叫此方法的基礎 是判斷本次提交不是二次提交的前提下哦!表忘記這點0.0
重複提交解決方案
struts 的token 機制能夠很好的解決表單重複提交的問題,基本原理是 伺服器端在處理到達的請求之前,會將請求中包含的令牌值與儲存在當前使用者會話中的令牌值進行比較,看是否匹配。在處理完該請求後,且在答 送給客戶端之前,將會產生乙個新的令牌,該令牌除傳給客戶端以外,也會將使用者會話中儲存的舊的...
struts令牌解決重複重新整理提交
insert步驟。原來的步驟insert.jsp form 點提交 insertaction 做插入的 insert.jsp跳回原來頁面 但是再次使用重新整理會再次提交。解決方法 tokenaction insert.jsp form insertaction insert.jsp 也就是在提交前先...
重複提交的解決方案
解決方案 js判斷 token驗證 想法一 應將按鈕隱藏或變灰,使其不可重複點選。var flog true function onsubmit success function data 想法二 設定引數,前後臺約定好特殊值,然後只有等於特殊值的時候,該資料才是有效的。var flog true ...