JSP out.flush () проблема - PullRequest
       21

JSP out.flush () проблема

0 голосов
/ 30 декабря 2011

У меня была странная проблема сегодня.У меня есть head.jsp (заканчивающийся out.flush), который включается другими страницами.большинство страниц не имеют проблем с этим out.flush ();но одна из моих страниц не работает с IllegalStateException на jboss 4.2.2 GA.

Я проверил связанный Java-файл ResponseFacade.java, я думаю.И видите, что проблема возникает из-за проверки if (isCommitted).

Я только что удалил оператор include со своей проблемной страницы, и теперь он работает.Но вопрос в том;почему другие страницы не имеют проблем с этой страницей, в то время как только одна страница имеет?

или если файл jsp включен другими страницами.мне нужно использовать out.flush () на этих страницах?

Ответы [ 4 ]

2 голосов
/ 30 декабря 2011

Ваш веб-контейнер, конечно, будет очищать поток вывода ответа, когда это необходимо. Вам не нужно звонить, чтобы сбрасывать. Кстати, Java-код в JSP в любом случае плохая практика.

1 голос
/ 16 февраля 2013

У меня нет такой же настройки, но была похожая проблема.

С <% out.flush(); %> в моем jsp <jsp:include page="abc.jsp" /> больше не работал. Указанная страница не была включена.

Я решил это с помощью <%@ include file="abc.jsp" %>

Надеюсь, это поможет.

0 голосов
/ 24 февраля 2017

Это единственный метод, который работал для меня (JSP поверх Tomcat / Apache).

Main.jsp

<jsp:include page="flush.jsp" flush="true" />

Flush.jsp (пусто)

<%
%>
0 голосов
/ 11 мая 2015

Когда вы очищаете (), вы отправляете содержимое буфера клиенту, а затем очищаете буфер.В этом нет ничего плохого, вы можете очищать столько раз, сколько вам нужно.

Просто помните, что 1-й сброс () страницы JSP также отправит заголовки HTTP, и буфер будет помечен как зафиксированный.(статус -> isCommitted).Значение: на данный момент вы больше не можете отправлять HTTP-заголовки (например, page_forward, cookies).

Скорее всего, вы пытаетесь отправить HTTP-заголовок на страницу после сброса () сделано (после включения).

...