当前位置: 首页 > news >正文

Spring Boot + Thymeleaf 防重复提交

在 Spring Boot 与 Thymeleaf 结合的 Web 应用中,防止重复提交可以采用token 机制 + 客户端禁用按钮的方式实现,在高并发场景下,考虑使用 Redis 存储 token 而非 Session。

第一步:后端实现

@Controller
public class FormController {@GetMapping("/form")public String showForm(Model model) {// 生成唯一 token 并存入 sessionString token = UUID.randomUUID().toString();model.addAttribute("token", token);return "form";}@PostMapping("/submit")public String handleSubmit(@RequestParam("token") String token, HttpSession session) {// 验证 tokenif (!isValidToken(token, session)) {throw new RuntimeException("重复提交或无效 token");}// 处理表单数据...// 移除已使用的 tokensession.removeAttribute("token");return "success";}private boolean isValidToken(String token, HttpSession session) {// 实现 token 验证逻辑return token != null && token.equals(session.getAttribute("token"));}
}

第二步:前端实现 (Thymeleaf)

<form th:action="@{/submit}" method="post"><!-- 其他表单字段 --><input type="hidden" th:value="${token}" name="token" /><button type="submit">提交</button>
</form>
http://www.dtcms.com/a/236768.html

相关文章:

  • 微前端架构下的B端页面设计:模块化与跨团队协作的终极方案
  • Oracle业务用户的存储过程个数及行数统计
  • Qt的学习(一)
  • VNA校准基础知识
  • 行为型设计模式之Interpreter(解释器)
  • Global Security Market知识点总结:主经纪商业务
  • Lodash原型污染漏洞原理详解
  • HttpURLConnection实现
  • 【商城saas和商城源码的区别】
  • Ubuntu 下开机自动执行命令的方法
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(三十一) -> 同步云端代码至DevEco Studio工程
  • 影响特性阻抗的因素-信号与电源完整性分析
  • C++学习-入门到精通【16】自定义模板的介绍
  • 亚川科技IBMS集成管理平台:构建商业综合体智慧中枢
  • 【小红书拥抱开源】小红书开源大规模混合专家模型——dots.llm1
  • 比较数据迁移后MySQL数据库和ClickHouse数据仓库中的表
  • BERT, GPT, Transformer之间的关系
  • 北大开源音频编辑模型PlayDiffusion,可实现音频局部编辑,比传统 AR 模型的效率高出 50 倍!
  • 内存泄漏检测工具-学习(一)
  • Ctrl-Crash 助力交通安全:可控生成逼真车祸视频,防患于未然
  • 9.进程间通信
  • 死锁的四个必要条件
  • 使用ORM Bee (ormbee) ,如何利用SQLAlchemy的模型生成数据库表.
  • SQL 基础入门
  • LeetCode 高频 SQL 50 题(基础版)之 【子查询】· 上
  • SQL-labs通关(level1-22)
  • 几种简单的排序算法(C语言)
  • Github 2025-06-07 Rust开源项目日报Top10
  • Xela矩阵三轴触觉传感器的工作原理解析与应用场景
  • 计算矩阵A和B的乘积