解决重复提交表单

来源:互联网 发布:java cms 编辑:程序博客网 时间:2024/05/21 22:36

在前端代码写一个随机数出来,把这个随机数放在两个地方,一个是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("请不要重复提交");}}


0 0