怎么解决Java表单重复提交问题


这篇文章主要介绍“怎么解决Java表单重复提交问题”,在日常操作中,相信很多人在怎么解决Java表单重复提交问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决Java表单重复提交问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!通过js代码,当用户点击提交按钮后,屏蔽提交按钮使用户无法点击提交按钮或点击无效,从而实现防止表单重复提交。ps:js代码很容易被绕过。比如用户通过刷新页面方式,或使用postman等工具绕过前段页面仍能重复提交表单。因此不推荐此方法。在数据库建表的时候在ID字段添加主键约束,用户名、邮箱、电话等字段加唯一性约束。确保数据库只可以添加一条数据。数据库加唯一性约束sql:服务器及时捕捉插入数据异常:通过数据库加唯一键约束能有效避免数据库重复插入相同数据。但无法阻止恶意用户重复提交表单(攻击网站),服务器大量执行sql插入语句,增加服务器和数据库负荷。实现原理:服务器返回表单页面时,会先生成一个subToken保存于session,并把该subToen传给表单页面。当表单提交时会带上subToken,服务器拦截器Interceptor会拦截该请求,拦截器判断session保存的subToken和表单提交subToken是否一致。若不一致或session的subToken为空或表单未携带subToken则不通过。首次提交表单时session的subToken与表单携带的subToken一致走正常流程,然后拦截器内会删除session保存的subToken。当再次提交表单时由于session的subToken为空则不通过。从而实现了防止表单重复提交。使用:mvc配置文件加入拦截器配置拦截器控制层 controller表单页面实现原理:自定义防止重复提交标记(@AvoidRepeatableCommit)。对需要防止重复提交的Congtroller里的mapping方法加上该注解。新增Aspect切入点,为@AvoidRepeatableCommit加入切入点。每次提交表单时,Aspect都会保存当前key到reids(须设置过期时间)。重复提交时Aspect会判断当前redis是否有该key,若有 香港云主机则拦截。自定义标签自定义切入点Aspect到此,关于“怎么解决Java表单重复提交问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: 如何解析二级域名

这期内容当中小编将会给大家带来有关如何解析二级域名,文章内容 香港云主机丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。二级域名设置解析方法:1、登录阿里云/万网【管理控制台】。2、点击主导航栏【产品与服务】–【云解析】,进入域名解析…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/16 11:27
下一篇 08/16 11:28

相关推荐