我正在尝试实现一个同步令牌并且它有效,但是我想忽略最后一个请求(或第一个请求之后的其他请求)。例如:如果我不放request.getResquestDispatcher() 或response.sendRedirect,这些其他请求将进入空白页面(nullPointer,因为没有命令)。此外,一切正常的第一个请求不会向用户发送一切正常的消息。
这就是我的做法。
@Override
public void executa(HttpServletRequest request, HttpServletResponse response)
{
HttpSession session = request.getSession();
Object attribute = session.getAttribute("formToken");
System.out.println(attribute);
if (!request.getParameter("tokenHidden").equals(attribute.toString()))
{
return;
}
session.setAttribute("formToken", 1);
}
//some stuff...
response.sendRedirect("coletarproduto.jsp?mensagem=Produto Atualizado");
我以这种方式处理同步器令牌:
<form action="wms" method="post">
<% session.setAttribute("formToken",Math.random()); %>
<input type="hidden" value="${formToken}" name="tokenHidden" />
</form>
我不喜欢使用 scriptlet,但我也想不出其他解决方案。
我正在使用Tomcat和jsp。谢谢。