无法使用response.sendRedirect重定向

Dmi*_*ris 6 java regex jsp servlets jstl

我用谷歌搜索并搜索了几个小时如何在jsp或servlet中进行重定向.但是,当我尝试应用它时,它不起作用.

我在jsp页面中的代码:

<%
    String articleId = request.getParameter("article_id").toString();
    if(!articleId.matches("^[0-9]+$"))
    {
       response.sendRedirect("index.jsp");
    }
%>
Run Code Online (Sandbox Code Playgroud)

我知道从调试regexp工作,如果任何时候,articleId不是数字,if内部,但当它到达response.sendRedirect时,它实际上不会重定向.

在这种情况下,我是否会错过一些非常基础

提前致谢.

obj*_*cts 22

您应该return在重定向后:

response.sendRedirect("index.jsp");
return;
Run Code Online (Sandbox Code Playgroud)

  • 值得考虑的是"为什么".sendRedirect()为HTTP响应添加了一个标头,就是这样.如果您继续将某些内容写入响应,则浏览器可能会认为重定向标头是多余的,并忽略它.总是值得考虑在响应对象上调用方法的顺序,它通常会导致奇怪的故障模式而没有明显的原因.Servlet API在描述这些潜在问题时非常明确. (5认同)