国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HTML5中form表單防止重復(fù)提交的兩種方法

這篇具有很好參考價值的文章主要介紹了HTML5中form表單防止重復(fù)提交的兩種方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

form表單重復(fù)提交是在多用戶Web應(yīng)用中最常見、帶來很多麻煩的一個問題。有很多的應(yīng)用場景都會遇到重復(fù)提交問題

(1)點(diǎn)擊提交按鈕兩次。

(2)點(diǎn)擊刷新按鈕。

(3)使用瀏覽器后退按鈕重復(fù)之前的操作 導(dǎo)致重復(fù)提交表單。

(4)瀏覽器重復(fù)的HTTP請求。

(5)用戶提交表單時可能因為網(wǎng)速的原因,或者網(wǎng)頁被惡意刷新,致使同一條記錄重復(fù)插入到數(shù)據(jù)庫中,這是一個比較棘手的問題。我們可以從客戶端和服務(wù)器端一起著手,設(shè)法避免同一表單的重復(fù)提交。

一 .用JavaScript 禁用提交按鈕

<script type="text/javascript">
    //設(shè)置disabed屬性
    $("input[type='submit']").attr("disabled",true);
    或者 $("input[type='submit']").attr("disabled","disabled");
    
    //移除disabed屬性
    $("input[type='submit']").attr("disabled",false);
    或者 $("input[type='submit']").attr("disabled","");
</script>

二. 用Session防止表單重復(fù)提交:

在服務(wù)器端生成一個唯一的隨機(jī)標(biāo)識號,專業(yè)術(shù)語稱為Token(令牌),同時在當(dāng)前用戶的Session域中保存這個Token。然后將Token發(fā)送到客戶端的Form表單中,在Form表單中使用隱藏域來存儲這個Token,表單提交的時候連同這個Token一起提交到服務(wù)器端,然后在服務(wù)器端判斷客戶端提交上來的Token與服務(wù)器端生成的Token是否一致,如果不一致,那就是重復(fù)提交了,此時服務(wù)器端就可以不處理重復(fù)提交的表單。如果相同則處理表單提交,處理完后清除當(dāng)前用戶的Session域中存儲的標(biāo)識號。

public class FormServlet extends HttpServlet {
    private static final long serialVersionUID = -884689940866074733L;
 
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        String token = UUID.randomUUID().toString();//創(chuàng)建令牌
        System.out.println("在FormServlet中生成的token:"+token);
        request.getSession().setAttribute("token", token);  //在服務(wù)器使用session保存token(令牌)
        request.getRequestDispatcher("/form.jsp").forward(request, response);//跳轉(zhuǎn)到form.jsp頁面
    }
 
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
 
}

原創(chuàng)作者:吳小糖

創(chuàng)作時間:2024.1.9文章來源地址http://www.zghlxwxcb.cn/news/detail-814766.html

到了這里,關(guān)于HTML5中form表單防止重復(fù)提交的兩種方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • springBoot防止重復(fù)提交

    springBoot防止重復(fù)提交

    兩種方法, 一種是后端實(shí)現(xiàn),較復(fù)雜,要通過自定義注解和AOP以及Redis組合實(shí)現(xiàn) 另一種是前端實(shí)現(xiàn),簡單,只需通過js,設(shè)置過期時間,一定時間內(nèi),多次點(diǎn)擊按鈕只生效一次 自定義注解+AOP+Redis 自定義異常類和全局異常處理 自定義異常類:CustomException 全局異常處理:Cust

    2024年02月11日
    瀏覽(21)
  • 微信小程序防止重復(fù)提交

    微信小程序在真機(jī)測試時,遇到這樣一種情況:當(dāng)網(wǎng)絡(luò)條件差或卡頓的情況下,進(jìn)行某項操作時,使用者會認(rèn)為點(diǎn)擊無效而進(jìn)行多次點(diǎn)擊,致使多次跳轉(zhuǎn)頁面或多次上傳同一表單,導(dǎo)致函數(shù)或接口被多次調(diào)用,實(shí)際上使用者只想調(diào)用函數(shù)和接口一次。 添加節(jié)流閥,即按下按鈕

    2024年02月13日
    瀏覽(32)
  • java防止重復(fù)提交的方法

    java防止重復(fù)提交的方法

    ? 為了防止重復(fù)提交,可以采用以下幾種方法: 1.?令牌機(jī)制(Token) 在表單中添加一個隱藏字段,用于存放一個隨機(jī)生成的令牌(Token)。當(dāng)用戶提交表單時,將令牌一起提交到服務(wù)器。服務(wù)器接收到請求后,首先檢查令牌是否存在,如果不存在則拒絕請求;如果存在,則將

    2024年02月01日
    瀏覽(23)
  • SpringBoot 整合redis + Aop防止重復(fù)提交 (簡易)

    SpringBoot 整合redis + Aop防止重復(fù)提交 (簡易)

    redis下載 解壓 安裝 看一下就會有 ?進(jìn)入redis-6.0.8下的src目錄 (? src?目錄下有編譯后的 redis 服務(wù)程序 redis-server,還有用于測試的客戶端程序 redis-cli:) 然后啟動 redis默認(rèn)端口號 6379,建議更改。redis.conf是配置文件在? 與src是同級目錄。 要遠(yuǎn)程? #去掉保護(hù)模式,注釋掉bi

    2024年02月12日
    瀏覽(32)
  • form表單提交數(shù)據(jù)如何拿到返回值

    form表單提交數(shù)據(jù)如何拿到返回值

    使用form表單提交參數(shù)的時候,是依據(jù)input框里面的name值傳給后端的,只需在form節(jié)點(diǎn)添加action以及提交方式就可以調(diào)通前后端。但是這種直接的操作是不能夠判斷接口是否調(diào)通的,是拿不到返回值的。這就意味著不能夠做對應(yīng)的操作。 1:引入jquery.form.js的插件,這是一個jqu

    2024年02月06日
    瀏覽(28)
  • 微信小程序的form表單提交

    第一:bindsubmit方法 注意: 1.使用form里面定義bindsubmit事件 2.bindsubmit事件需要配合button里面定義的formType=“submit” 操作 3.設(shè)置input的name值來獲取對應(yīng)的數(shù)據(jù) 通過e.detail.value獲取數(shù)據(jù), 其中包含input的value值 第二種:bindinput方法 注意: 1.在input框內(nèi)使用bindinput屬性的方式定義事件

    2024年02月11日
    瀏覽(26)
  • 記錄一下verilog重復(fù)例化的兩種方式

    記錄一下verilog重復(fù)例化的兩種方式

    0 前言 這段時間例化了挺多mem,過程中也了解到了一些新的東西,在這里記錄一下 1 for循環(huán)方式例化方法 先給出 sub_module 要將這個module分別例化成 u_sub_0 和 u_sub_1 ,并且每個都例化四次 for循環(huán)的實(shí)現(xiàn)方式如下 來看看例化后的效果 可以看到,總共4組inst,每組inst中存在兩個

    2024年02月11日
    瀏覽(20)
  • ant.design(簡稱antd)中Form表單組件提交表單、表單數(shù)據(jù)效驗、表單自定義效驗、表單布局集合

    ant.design(簡稱antd)中Form表單組件提交表單、表單數(shù)據(jù)效驗、表單自定義效驗、表單布局集合

    ? ? ? ??ant.design(簡稱antd)現(xiàn)在我們使用較為廣泛,web端中后臺表單使用非常廣泛,此遍文章集合了表單日常用法及使用注意事項。 ? ? ? ? 下圖是UI目標(biāo)樣式圖? ? ? ? ? ? ? ? ? ? ? ? ? ?1、以下是一個組件,首先引入ant相關(guān)依賴,在引入react相關(guān)依賴,主要使用了For

    2024年02月13日
    瀏覽(25)
  • HTML5-4-表單

    HTML5-4-表單

    HTML 表單用于收集用戶的輸入信息,表示文檔中的一個區(qū)域,此區(qū)域包含交互控件,將用戶收集到的信息發(fā)送到 Web 服務(wù)器。 表單是一個包含表單元素的區(qū)域。 表單元素是允許用戶在表單中輸入內(nèi)容,比如: 文本域(textarea) 、 下拉列表(select) 、 單選框(radio-buttons) 、

    2024年02月09日
    瀏覽(18)
  • Git提交代碼倉庫的兩種方式

    Git提交代碼倉庫的兩種方式

    目錄 一: 兩種本地與遠(yuǎn)程倉庫同步 1 git 遠(yuǎn)程倉庫 提交本地版本庫操作 提交到遠(yuǎn)程版本庫操作 1.Git 全局設(shè)置: 2.增加一個遠(yuǎn)程倉庫地址 3.查詢當(dāng)前存在的遠(yuǎn)程倉庫 5.本地版本庫內(nèi)容提交到遠(yuǎn)程倉庫 6.查詢遠(yuǎn)程倉庫 注意:本地版本庫提交到遠(yuǎn)程倉庫用戶名密碼存放位置 遠(yuǎn)程倉庫

    2023年04月14日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包