Получение Exception-java.lang.IllegalStateException: getOutputStream () уже был вызван для этого ответа

Я новичок в jsp, когда я пытаюсь вызвать страницу jsp по некоторым параметрам с именами cId и passWord, я получаю эту ошибку, код, который я пробовал, приведен ниже, я уже прошел через ту же ошибку, которая была замечена прибегая к помощи, но все же я получаю ту же проблему. Код:


        

Ответы на вопрос(3)

Если вы проверите документациюgetOutputStream () Метод: упоминает

Броски:IllegalStateException - еслиgetWriter метод был вызван на этот ответ.

Это означает, что вы можете позвонить либоgetWriter() или жеgetOutputStream() методы.

Сейчас в JSP (и в конечном итоге в скомпилированном сервлете), существует неявная переменная, называемаяout , Это не что иное, как примерPrintWriter учебный класс. Это означает, что на объекте ответа,getWriter() уже называется и, следовательно, по вызовуgetOutputStream() ты получаешьIllegalStateException

Теперь, как отметили некоторые люди, как решение этой проблемы, переместите этот код в сервлет, где у вас есть полный контроль, и используйте выходной поток так, как вы хотите.

Решение Вопроса

Ты не долженпопытаться сделать это внутри JSP. JSP уже получит выходной поток для его записи 'выходной. Вам нужно использовать сервлет для возврата вашего XML.

Когда вы вызываете response.getOutputStream, это вступает в противоречие с тем фактом, что JSP (который будет скомпилирован в сервлет) уже получил выходной поток. Вот почему это приводит к IllegalStateException.

Это JSP со сценарием, который преобразуется в файл сервлета. Вам не нужно явно вызывать объект ответа. Если вам нужно посмотреть, как выглядит скомпилированный JSP при его развертывании, поищите (Google), как искать скомпилированный класс (сервлет, сгенерированный из JSP) на сервере. Поскольку вы уже вызвали метод в ответе, второй вызов недопустим для объекта ответа

Ваш ответ на вопрос