java 防止重复提交
来源:互联网 发布:策略交易软件靠谱吗 编辑:程序博客网 时间:2024/06/07 11:47
放在重复提交:
1、页面多次点击按钮
解决办法:javascript控制提交,将submit改成button提交
<script type="text/javascript">var flag = false;function ButtonSubmit(){if(!flag){document.forms[0].submit();flag = true;}}</script>2、提交完毕后,在保存页面重复刷新,一直执行保存方法
解决办法:在新增页面设置uuid,放在request,session中,将request数据放在保存页面隐藏域中。在保存的方法中取到。与session中的数据比较,如果相同就执行保存方法,保存完毕后就清除session中的值。
package com.mail.util;import java.util.UUID;import javax.servlet.http.HttpServletRequest;import org.apache.commons.lang.StringUtils;public class TokenUtil {private TokenUtil(){}/** * 在提交页面放唯一token * @param request */public static void addToken(HttpServletRequest request){String key = UUID.randomUUID().toString();request.setAttribute("key", key);//保存页面放在隐藏域中String sessionInRequest = UUID.randomUUID().toString();request.setAttribute("keyInSession", sessionInRequest);//放在隐藏域中,不同页面不同sessionrequest.getSession().setAttribute(sessionInRequest, key);}/** * 保存页面比较拿到的值是否相等 * @param request * @return 值是否相等 */public static boolean getTokenUtil(HttpServletRequest request){String key = request.getParameter("key");//从保存页面拿隐藏域String sessionInRequest = request.getParameter("keyInSession");String keyInSession = (String) request.getSession().getAttribute(sessionInRequest);return !StringUtils.isNotEmpty(keyInSession)&&StringUtils.isNotEmpty(key)&&key.trim().equals(keyInSession.trim());}/** * 保存完毕后,清楚session中的值 * @param request */public static void validate(HttpServletRequest request){String sessionInRequest = request.getParameter("keyInSession");request.getSession().removeAttribute(sessionInRequest);}}
- java 防止重复提交
- java防止重复提交
- java 防止表单重复提交
- java防止表单重复提交
- java 防止表单重复提交
- java防止表单重复提交
- Java防止表单重复提交
- 防止重复提交java解决
- java防止表单重复提交
- Java防止表单重复提交
- 防止重复提交java解决
- 防止重复提交java解决
- Java 防止表单重复提交
- 防止表单重复提交 java
- java防止表单重复提交
- java防止请求重复提交
- java 后退防止重复提交
- java 防止重复提交、重复刷新
- CString 和string 相互转换
- Why does my OSG MFC based application show memory leaks
- 工作中及时沟通很重要
- 在net.tcp模式下,由SvcUtil.exe生成代理类文件和配置文件
- UML学习笔记(六)【状态图】
- java 防止重复提交
- JVM max thread number
- 数组成绩处理的图片
- bash programming start
- 获取所有SQL Server 2005存储过程的简便方法
- 剪枝方法
- 动态规划1
- JQuery.TreeTable基础使用
- 正确理解ThreadLocal