티스토리 뷰

반응형

HttpServletResponse에서 getWriter() 사용시 주의사항

JSP또는 Java에서 HttpServletResponse Class를 사용하여 Response를 구현할때
getWriter() Method를 자주 사용하게 됩니다.

getWriter()를 사용할때 getWriter() 1개 이상 호출 하거나
getWriter()와 getOutputStream()를 같이 사용 할수가 없게 됩니다.

Compile 할때는 Error가 발생 하지 않게 되지만 Run Time시에 getWriter()를 이미 사용중 이라고
Error Message가 발생 하게 됩니다.

이는 Java내부에서 getWriter()를 호출하거나 getOutputStream() 를 호출하게 되면
Output Handle를 호출 한 넘에게 제어권을 넘겨 주기 때문 입니다.

이런 경우 if문이나 try를 통해 사용하면 같이 쓸수가 있습니다.

 

[ Run Time Error Message ]

  ....,
  
2012-08-29 10:21:59,274 INFO  [STDOUT] (http-127.0.0.1-80-1) java.lang.IllegalStateException: getWriter() has already been called for this response
	at org.apache.catalina.connector.Response.getOutputStream(Response.java:588)
	at org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFacade.java:183)

   ....,
  

[ Run Time Error Code ]


  HttpServletResponse resp ....,
  ....,
    
  PrintWriter out = resp.getWriter();

  ....,

  resp.getOutputStream();

[ Run Time Error 회피 Code ]


  HttpServletResponse resp ....,
  ...,


  if( ... )
  {
     PrintWriter out = resp.getWriter();
  }
  else
  {
     
    resp.getOutputStream();
  }

반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함