400-969-7660
首页 > IT问答库 > Java > 如何进入Java开发的领域?怎么解决重复提交问题?

如何进入Java开发的领域?怎么解决重复提交问题?

2020-07-15 17:52:49 发布
    如何进入Java开发的领域?怎么解决重复提交问题?很多同学在平时网页使用中,经常会遇到按钮重复点击,然后点不动刷新,还有当网络延时比较厉害点了没反应在点击的重复提交的情况。为了帮助你有效避免这种问题,下面就给大家讲解一下如何解决重复提交问题。
 

 
    重复提交分为很多情况,比较常见的是Java中的表单重复提交,常用的解决方法有两种:
 
    1、利用JavaScript防止表单重复提交:
 
    设定控制Form表单只能提交一次,或将提交按钮设置为不可用,但不建议将提交按钮隐藏(易被认为是bug)。
 
    2、利用Session防止表单重复提交
 
    1)在服务器端生成一个唯一的随机标识号,专业术语称为Token(令牌),并在当前用户的Session域中保存这个Token。
 
    2)将Token发送到客户端的Form表单中,在Form表单中使用隐藏域来存储这个Token,表单提交的时候连同这个Token一起提交到服务器端。
 
    3)在服务器端判断客户端提交上来的Token与服务器端生成的Token是否一致,如果不一致,那就是重复提交,此时服务器端就可以不处理重复提交的表单。如果相同则处理表单提交,处理完后清除当前用户的Session域中存储的标识号。
 
    除了以上方法,比较常见的解决重复提交的方法还有以下几种:
 
    1、使用Post/Redirect/Get模式
 
    在提交后执行页面重定向,这就是所谓的Post-Redirect-Get (PRG)模式。简言之,当用户提交了表单后,你去执行一个客户端的重定向,转到提交成功信息页面。这能避免用户按F5导致的重复提交,而其也不会出现浏览器表单重复提交的警告,也能消除按浏览器前进和后退按导致的同样问题。
 
    2、在session中存放一个特殊标志
 
    在服务器端,生成一个唯一的标识符,将它存入session,同时将它写入表单的隐藏字段中,然后将表单页面发给浏览器,用户录入信息后点击提交,在服务器端,获取表单中隐藏字段的值,与session中的唯一标识符比较,相等说明是首次提交,就处理本次请求,然后将session中的唯一标识符移除;不相等说明是重复提交,就不再处理。
 
    3、借助数据库insert使用唯一索引update、使用乐观锁version版本法,这种在大数据量和高并发下效率依赖数据库硬件能力,可针对非核心业务。
 
    总体而言,Java开发的前景是毋庸置疑的,如果想进入这个“吸金”的领域,想了解更多Java编程行业,可以选择专业的学习,助你快速入门、求职无忧!
上一篇 : 怎么学好Java编程开发?Java的重中之重是什么?
下一篇 : Java编程行业前景怎样?怎么学好Java中的Redis?

在线预约 立享免费试学资格

姓      名 :
联系方式 :
试学课程 :