分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

Web 防止表单重复提交

发布时间:2023-09-06 01:34责任编辑:胡小海关键词:Web

  表单重复提交存在如下两种情况:

  1 存在网络延迟的情况下用户多次点击按钮

  演示动画如下:

  使用JS控制表单只能提交一次。

  例如,表单提交之后将按钮设置为不可用。

  2 表单提交后用户点击刷新按钮(forward直接转发页面)

  演示动画如下:

  

  通过Session防止表单重复提交

  服务器端生成一个唯一的随机标识号(最简单的是根据一个种子作为key生成一个随机数),称为Token(令牌)。同时,当前用户的Session中保存该Token。然后将Token发送到客户端的表单中,使用隐藏域来存储,提交表单时把这个Token提交到服务端,然后在服务端判断提交的Token与服务器端生成的Token是否一致。如果不一致,说明重复提交了;如果不一致,说明需要处理提交的表单,处理完后清除当前用户的Session中保存的Token。

  生成Token和验证过程如下:

  

  

  

  参考资料

  JavaWeb学习总结(十三)——使用Session防止表单重复提交

  《深入分析Java Web技术内幕 修订版》 P282-283

Web 防止表单重复提交

原文地址:https://www.cnblogs.com/WJQ2017/p/8206704.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved