解决重复提交表单

在前端代码写一个随机数出来,把这个随机数放在两个地方,一个是session域对象中,一个是表单的隐藏域中。传到后台进行比对,根据这两个值是不是一致,一致的话不是表单重复提交,不一致就是表单重复提交。注意:当判断到是一致的时候要把session中的随机数清除


<%
  	String stoken = UUID.randomUUID().toString();//生成唯一的令牌
  	request.getSession().setAttribute("stoken", stoken);
  	
   %>
  <form action="${pageContext.request.contextPath}/recommit" method="post">
  		<input type="hidden" name="ttoken" value="<%=stoken%>"/>
  		<input type="text" name="name"/>
  		<input type="submit" value="提交"/>
  </form>

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String ttoken = request.getParameter("ttoken");
		System.out.println(ttoken);
		String stoken = (String) request.getSession().getAttribute("stoken");
		System.out.println(stoken);
		if(ttoken.equals(stoken)){
			request.getSession().removeAttribute("stoken");
			String name = request.getParameter("name");
			System.out.println(name);
		}else{
			System.out.println("请不要重复提交");
		}
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值