본문 바로가기
Programming/jsp

[JSP]getOutputStream() has already been called for this response

by 막이 2014. 7. 9.
jsp 에서 이미지나 다운로드를 처리하기 위해 OutputStream 을 받아서 처리하는데, jsp에서 servlet으로 변환될때 내부적으로 out 객체가 생성된다고 합니다. 그래서 jsp에서 out 객체를 만들면 이후에 생성되는 out과 충돌이 나타나서 이미 호출되었다는 메세지가 나타나는 것이죠.
결론은 out 객체를 생성할 필요가 있다면 서블릿에서 호출하고 jsp에서 호출하지 않으면 됩니다.
하지만 어쩔 수 없이 jsp 에서 out 객체를 생성할 필요가 있다면 out 호출 이전에 다음과 같이 코드를 넣어주면 됩니다.

out.clear();
pageContext.pushBody();


기존의 out 객체를 초기화 해주는 거죠.

그 이후에 새로이 out 객체를 만들면 정상적을 동작합니다.

'Programming > jsp' 카테고리의 다른 글

jsp 내에서 class 정의하기  (1) 2014.07.09
JSP 선언부 <%! %>  (0) 2014.07.09