web表单重复提交验证
来源:互联网 发布:轩辕网络财务报告 编辑:程序博客网 时间:2024/06/08 05:57
首先是工具类
public class RandomUtil { private static final RandomUtil RANDOM_UTIL = new RandomUtil(); private final Random random = new Random(); private RandomUtil(){ } public static RandomUtil getRandomUtil(){ return RANDOM_UTIL; } //用来返回一个随机数,用作创建表单隐藏ID public String random(){ return System.currentTimeMillis()+""+random.nextInt(9999999)+""; }}
jsp部分
<%@page import="util.RandomUtil"%><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>表单重复提交验证</title> <script type="text/javascript"> //创建一个全局变量.默认为false,表示表单还未提交 var flag = false; function verify (){ if(!flag){ alert("第一次提交"); //提交后flag改为true,表示表单已经提交 flag=true; return true; }else{ alert("重复"); return false; } } </script> </head> <body> <!-- 工具类创建ID,且存入form表单和Session中 --> <% String id = RandomUtil.getRandomUtil().random(); session.setAttribute("id",id); %> <!-- <form>根据onsubmit的返回值判定是否提交 --> <form action="${pageContext.request.contextPath}/IsGet" method="get" onsubmit="return verify()"> <!-- 将上面工具类创建的ID存入表单的隐藏字段 --> <input type="hidden" value="<%=id %>" name="id"/> <input type="submit" value="表单重复提交验证" /> </form> </body></html>
web后台
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id = (String) request.getSession().getAttribute("id"); String reqId = (String) request.getParameter("id"); //睡眠模拟延迟状态 try { Thread.sleep(4000); } catch (InterruptedException e) { e.printStackTrace(); } HttpSession session = request.getSession(); //如果表单的隐藏ID和Session中的ID为空或者不一致,判为重复提交 if(id==null||reqId==null||!id.equals(reqId)){ session.setAttribute("message","重复提交"); }else{ request.getSession().removeAttribute("id"); session.setAttribute("message","提交成功"); } //这里用重定向的原因是:重定向会改变地址栏的URL,防止用户刷新重新提交response.sendRedirect(request.getContextPath()+"/message.jsp"); }
用来接收消息的message.jsp
.... ${message } ....
1 0
- web表单重复提交验证
- web-避免表单重复提交
- web防止表单重复提交
- 关于验证表单重复提交的问题
- Session实现表单重复提交验证
- Token验证表单是否重复提交
- web路径、表单重复提交(2种方法)、验证码
- JAVA Web防止表单重复提交实例
- java web解决表单重复提交问题
- java web 防止表单重复提交解决方案
- JAVA Web防止表单重复提交实例
- Java Web防止表单重复提交
- JAVA Web防止表单重复提交实例
- JAVA Web防止表单重复提交实例
- web中解决表单重复提交
- web开发之防止表单重复提交
- web表单提交前用JavaScript验证
- 关于struts2表单重复提交验证的方法
- mac下安装numpy等python科学计算包
- codeforce 615 C
- 手机维修刷机专业论坛:天目通移动维修论坛
- 系统设计之----分布式跟踪系统
- Java反射
- web表单重复提交验证
- ZF-net
- PHP中POST和GET的区别
- IOS开发系列——Objective-c Runtime专题总结【整理】
- 面试题目-堆排、快排、二分查找
- Caffe + Ubuntu14.04 64bit(位)+ Cuda6.5/Cuda7.0 安装配置教程
- 高性能Mysql笔记(一)
- iOS:使用minimumScaleFactor控制字体大小自适应
- iOS UI UIView基础概况