자바(Java)/JAVA 2EE

출력 스트림 out 객체(javax.servlet.jsp.JspWriter)

본클라쓰 2009. 8. 26. 09:51

 

out 객체는 JSP 페이지의 결과를 웹 브라우저에 전송해주는 출력 스트림입니다. JSP 페이지가 웹 브라우저에게 보내는 모든 정보는 out 객체를 통해서 전달이 됩니다.

 

out 객체는 출력 버퍼를 관리할 수 있습니다. 버퍼(buffer)는 생성된 결과를 곧바로 웹 브라우저에 전송하지 않고 버퍼라는 장소에 임시로 출력 결과를 저장했다가 한 번에 웹 브라우저에 전송하는 방법입니다. 버퍼를 사용하면 성능이 향상되는데, 그 이유는 작은 단위로 데이터를 전송하는 것이 아니라 한 번에 큰 단위로 데이터를 전송하는 것이 가능하기 때문입니다. 네트워크를 비롯한 모든 데이터 교환에서는 작은 단위를 여러 차례 보내는 것보다, 큰 단위로 한 번에 묶어서 보내는 것이 더 높은 성능을 발휘합니다.

 

또한, 버퍼를 사용하면 여러가지 처리 기능을 사용할 수 있습니다. 페이지 생성 결과가 우선 버퍼에 저장되기 때문에 실제로 웹 브라우저에 전송되는 데이터가 없습니다. 따라서 페이지에 오류가 있을 경우 지금까지 생성한 내용을 버퍼에 지우고 에러 화면을 출력할 수 있습니다.

 

 

 

out 객체 메소드

boolean isAutoFlush()

출력 버퍼가 다 채워진 경우 자동으로 flush 했을 경우는 true를 리턴, 그렇지 않을 경우는 false를 리턴

 

int getBufferSize()

출력 버퍼의 전체 크기를 바이트 단위로 리턴한다.

 

int getRemaining()

출력 버퍼의 남은 양을 바이트 단위로 리턴한다. 

 

void clearBuffer()

현재 출력 버퍼에 저장된 내용을 비운다. 

 

String println(String)

주어진 문자열을 웹 브라우저에 출력한다. 

 

void flush()

현재 출력 버퍼에 저장된 내용을 웹 브라우저로 전송하고 버퍼를 비운다. 

 

void close() 

출력 버퍼의 내용을 flush하고 스트림을 닫는다.  

 

 

 

■ out 내장 객체 사용 예제

<%@ page contentType="text/html; charset=EUC-KR"  pageEncoding="EUC-KR"%>

   
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body> 
<h1> out 객체 예제 </h1>

출력 buffer의 전체 크기 : <%=out.getBufferSize() %> byte<p/>
현재 buffer의 사용량 : <%=out.getRemaining() %> byte</p>
남은 buffer의 크기 : <%=out.getBufferSize()-out.getRemaining() %> byte


</body>
</html>

 

결 과