Каково обоснование для этого исключения при пересылке запроса. Причина исключения в response.redirect заключается в том, что 30-кратный заголовок ответа на перенаправление не может быть выдан после того, как часть тела ответа была сброшена в выходной поток. Но я не вижу причины сделать это на внутреннем форварде.
Вариант использования, который я имею в виду, заключается в раннем удалении html-контента из фильтров, чтобы браузер мог получить преимущество (каламбур) на верхнем CSS и JavaScript, пока сервлет выполняет свою серверную работу перед передачей на презентацию JSP. Получив первый байт раньше, я надеюсь увидеть улучшение производительности на стороне клиента.
Struts и другие структуры зависят от отправки вперед. Именно из-за этих переадресаций мы не можем сбрасывать содержимое ответа раньше, в соответствии с API.
http://download.oracle.com/javaee/6/api/javax/servlet/RequestDispatcher.html#forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)