Объект ответа каждый раз будет возвращать одну и ту же запись.Вы можете использовать эти записывающие устройства взаимозаменяемо:
final PrintWriter writerA = response.getWriter();
final PrintWriter writerB = response.getWriter();
writerA.println("A1");
writerB.println("B1");
writerA.println("A2");
writerB.println("B2");
Вывод является ожидаемым, потому что writerA
и writerB
фактически указывают на точно такой же экземпляр PrintWriter
.
НадеюсьНе знаю, указано ли это как таковое в спецификации, Javadoc только говорит:
Либо этот метод, либо getOutputStream () может быть вызван для записи тела, но не оба.
При этом ваш код небезопасен по двум причинам:
crystalReportViewer
может вызвать response.getOutputStream()
, что нарушает указанный выше контракт
, если вы сначала напечатаете что-то, а затем передадите response
на crystalReportViewer
, то есть ваш выход сломает вывод crystalReportViewer
, так как к нему будет добавлен символ.