我正在尝试实现一个同步令牌,它可以工作,但最后一个请求(或第一个之后的其他请求)我想忽略。 例如: 如果我没有放入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。 感谢。