BLOG NOTICE TAG CLOUD GUESTBOOK
RSS
CATEGORY

'error'에 해당되는 글 1건

  1. 2009/11/13 java.lang.IllegalStateException: getOutputStream() has already bee... (1)
1
Comments

0
Trackbacks

ApplicationDispatcher[/cmp] Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.coyote.tomcat5.CoyoteResponse.getWriter(CoyoteResponse.java:599)
 

error가 일어난 이유는?


답안) jsp파일에서 getOutputStream()을 대신해서 getWriter()를 호출!


추가설명:

이 익셉션은 jsp 페이지에서 OutputStream을 사용했을 때 발생한다.

 

jsp는 servlet으로 변환될 때 자동적으로  write객체가 존재하는데

 

OutputStream을 가져온다면 당연히 혼선(?)으로 익셉션이 난다. 


정식적으로는 jsp페이지에서 OutputStream을  쓰는것 자체가 안되는것이다.

 

OuptputStream은 .java 즉 Servlet에서 사용하는것이 옳으며, jsp에는 getWriter()라는 친구를

 

사용해야 한다.

 

하지만!

굳이 jsp페이지에서 써야 할경우

 

1) response.getWriter()

2) try {
        out.clear(); //out--> jsp자체 객체
       out=pageContext.pushBody(); //out--> jsp자체 객체
        OutputStream out = response.getOutputStream();

                              

        요런식으로 OutputStream객체를 생성하기 전에

        jsp자체의 out객체를 비워주고 <body>태그 바깥으로 밀어내야(??) 한다.

출처 : http://cafe.naver.com/javabegin/2

2009/11/13 17:18 2009/11/13 17:18