Не удается перенаправить с помощью response.sendRedirect - PullRequest
6 голосов
/ 07 июня 2009

Я часами гуглял и гуглял о том, как сделать перенаправление в jsp или сервлетах. Однако, когда я пытаюсь применить это, это не работает.

Код, который у меня есть на странице JSP:

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

Я знаю из отладки, что regexp работает, и если в любое время articleId не является числом, if входит внутрь, однако, когда он достигает response.sendRedirect, он фактически не выполняет перенаправление.

В этом случае я что-то очень фундаментальное пропускаю?

Заранее спасибо.

Ответы [ 2 ]

22 голосов
/ 07 июня 2009

Вы должны return после перенаправления:

response.sendRedirect("index.jsp");
return;
1 голос
/ 07 июня 2009

Есть ли контент перед этим скриптлетом? Если это так, перенаправление не будет работать.

Кроме того, обычной практикой является использование такой логики внутри сервлета или другого класса, служащего в качестве контроллера и оставляющего JSP только для обработки рендеринга HTML. Это также может решить вашу проблему. Например, см здесь

...