response.sendRedirect () из jsp: include игнорируется?

Я получил файл jsp, который включает другой файл jsp для проверки некоторых значений и таких:

Внутри setup.jsp у меня есть некоторый условный код, который определяет если в сеансе установлены некоторые необходимые значения, а если нет, перенаправляет их на другую страницу. По крайней мере, предполагается, но перенаправление, похоже, игнорируется.

System.err.println("Redirecting!");
response.sendRedirect("http://www.google.com");
return;

Я вижу "Перенаправление!" войти в консоль, но страница продолжает работать и отображается нормально. Я попросил curl выгрузить заголовки и увидел, что ответ HTTP / 1.1 200 OK , так что он определенно не отправляет перенаправление 302.

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

РЕДАКТИРОВАТЬ: Я убедился, что мой ответ еще не подтвержден. response.isCommitted () возвращает false , что означает, что код состояния и заголовки еще не отправлены.

РЕДАКТИРОВАТЬ 2: Я пробовал вызвать response.sendRedirect () во многих других местах и ​​обнаружил, что могу успешно перенаправить до. Кажется, что перенаправление внутри JSP игнорируется, и если я попытаюсь перенаправить вправо ПОСЛЕ jsp, я получаю исключение недопустимого состояния, потому что ответ уже был зафиксирован.

7
задан Kenny Wyland 9 July 2011 в 23:31
поделиться