[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-servlety-mozhno-li-odnovremenno-ispolzovat-v-servlete-printwriter-i-servletoutputstream":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},550,"mozhno-li-odnovremenno-ispolzovat-v-servlete-printwriter-i-servletoutputstream",13,"servlety","Сервлеты","🖧","Можно ли одновременно использовать в сервлете PrintWriter и ServletOutputStream","Нет, нельзя. При попытке вызвать `response.getWriter()` после `response.getOutputStream()` (или наоборот) будет выброшено `java.lang.IllegalStateException` с сообщением о том, что другой метод вывода уже был вызван.\n\nЭто ограничение введено намеренно, поскольку оба потока пишут в один и тот же буфер ответа. `PrintWriter` добавляет слой конвертации символов, а `ServletOutputStream` работает напрямую с байтами. Их одновременное использование привело бы к непредсказуемому порядку данных в ответе и конфликтам кодировки.\n\nЕсли нужно отправить смешанный контент (например, текст и бинарные данные), следует выбрать `ServletOutputStream` и самостоятельно конвертировать текст в байты: `outputStream.write(text.getBytes(StandardCharsets.UTF_8))`.\n\n> **На собеседовании:** достаточно назвать `IllegalStateException` и причину ограничения. Это частый вопрос-ловушка на знание Servlet API.","","junior",[15],"servlets",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Можно ли одновременно использовать в сервлете PrintWriter и  — Gymterview","Нет, нельзя. При попытке вызвать `response.getWriter()` после `response.getOutputStream()` (или наоборот) будет выброшено `java.lang.IllegalStateException` с со","Нет, нельзя. При попытке вызвать `response.getWriter()` после `response.getOutputStream()` (или наоборот) будет выброшен",[15,13],"Нет, нельзя. При попытке вызвать `response.getWriter()` после `response.getOutputStream()` (или наоборот) будет выброшено `java.lang.IllegalStateException` с сообщением о том, что другой метод вывода уже был вызван.",true]