ssh商城專案 之表單重複提交問題

2022-09-11 08:09:07 字數 683 閱讀 6301

在完成ssh**專案時發現專案乙個bug,在購物車介面重新整理一下,會自動將最後新增的那個商品數量加1。如下圖,每次重新整理一下最後新增到購物車的商品數量會增加1

每次重新整理會重新根據那個上個頁面請求的資料再次發出請求,所以每重新整理一次則會導致商品數量加一。

最開始想的通過referer來判斷;或者第一次請求時寫入乙個cookie,之後通過該cookie來判斷是重新整理介面還是第一次請求。想了想這兩種方法都不是很科學,因為不管是第一次請求還是重新整理referer都是一樣的;cookie方式一般有些使用者會禁用它。最後突然想到了struct2中的防止表單重複提交機制(action的重定向,或session token(session令牌)),試了下,效果很ok。

public string addcart()

public string addcartredirect()

struts2中的配置:

cart_addcartredirect

/web-inf/jsp/cart.jsp

在form表單中:

struts2中的配置:

/web-inf/jsp/cart.jsp

/web-inf/jsp/cart.jsp

Struts2學習10 防止表單的重複提

一 簡介 struts2使用 token 來檢查表單是否重複提交,採用的是同步令牌的方式。同步令牌方式 伺服器端在處理到達的請求之前,會將請求中包含的令牌值與儲存在當前使用者會話中的令牌值進行比較,看是否匹配。在處理完該請求後,且在答 送給客戶端之前,將會產生乙個新的令牌,該令牌除傳給客戶端以外,也...

SPA專案開發之CRUD 表單驗證

動態樹 資料 分頁 中,我們實現了左側導航選單 動態樹 資料 以及 分頁。今天我們在上篇的基礎上繼續完善功能,這次我們要完成的功能是實現對文章的中增刪改查,其中我們要對資料進行驗證 表單驗證 接下來進入正題。form元件提供了表單驗證的功能,只需要通過 rules 屬性傳入約定的驗證規則,並將for...

SPA專案開發之CRUD 表單驗證

我們在進行crud時最好先把前台介面做好,並且做好表單驗證 元件 搜尋 新增編輯 刪除取消 儲存用vue進行開發我們要對元件進行定義 表單驗證 form元件提供了表單驗證的功能,只需要通過 rules 屬性傳入約定的驗證規則,並將form item的prop屬性設定為需校驗的欄位名即可 在上使用特殊...