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

          主站蜘蛛池模板: 景东| 桂林市| 屯门区| 温泉县| 邢台县| 司法| 华安县| 图木舒克市| 崇左市| 裕民县| 肃宁县| 阿尔山市| 宽甸| 屏边| 石楼县| 长海县| 连江县| 舒城县| 余江县| 杭锦旗| 定州市| 陇南市| 柞水县| 梁平县| 玉林市| 漳浦县| 铜山县| 成安县| 兴文县| 霍林郭勒市| 泽州县| 吉首市| 斗六市| 罗甸县| 扬中市| 咸丰县| 天全县| 临夏县| 于田县| 屯门区| 乌什县|