paulwong

          Spring MVC如何防止重復提交?類似Struts Token機制!

          首先,需要將繼承了SimpleFormController之類的sessionForm設為true。這樣,在顯示一個新表單時,Spring會將command存放在session中,而在提交表單時,Spring會從session中取出此command,隨后立即從session中刪除存放command的attribute。如果發現在session中沒有command,Spring將其斷定為重復提交,轉而執行handleInvalidSubmit(request, response),可覆蓋此方法負責防止重復提交的任務。

          可以這么說,當setSessionForm(true)之后,如果沒有先后經歷顯示表單、提交表單的過程,就會被認為是重復提交表單。

          而有一些情況下卻必須重復提交表單,如,修改數據庫的數據后,試圖寫入數據庫時因某些異常失敗,如果此時異常被當前頁面捕獲并依舊返回當前頁面,由于command已經被Spring在后臺從session中移走,因此,就被認為是無效重復提交,從而導致第二次經修改后的記錄無法正確提交到數據庫中。handleInvalidSubmit()必須考慮到這種情況。

          posted on 2012-02-20 22:57 paulwong 閱讀(3598) 評論(0)  編輯  收藏 所屬分類: SPRING MVC

          主站蜘蛛池模板: 威信县| 富锦市| 凌源市| 岑溪市| 佛坪县| 南涧| 海南省| 丹寨县| 舟山市| 禄丰县| 江安县| 巴林左旗| 丹江口市| 南宁市| 龙江县| 新干县| 南城县| 宝清县| 正定县| 玛多县| 萨迦县| 桂林市| 滨海县| 海宁市| 台湾省| 剑川县| 洞口县| 海林市| 甘洛县| 莆田市| 财经| 修水县| 家居| 惠安县| 深泽县| 淮安市| 巴南区| 越西县| 噶尔县| 二手房| 依兰县|