令牌机制(一次性)
原理:在页面加载时,一个token放在session中,另一个用form提交传递到后台,
后台接收到两个token进行对比,相同则是第一次提交,清空token 1.在Servlet代码 // 判断是否是重复提交: String token1 = (String)request.getSession().getAttribute("token"); String token2 = request.getParameter("token"); // 清空session中的令牌: request.getSession().removeAttribute("token"); if(!token2.equals(token1)){ request.setAttribute("msg", "亲!您已经提交过!请不要重复提交了!"); request.getRequestDispatcher("/jsp/msg.jsp").forward(request, response); return; } 2.在页面中代码() <h1>添加商品的页面</h1> <% String token = UUIDUtils.getUUID(); session.setAttribute("token", token); %> <form action="${ pageContext.request.contextPath }/ProductAddServlet" method="post"> <input type="hidden" name="token" value="${ token }"/>