JSP Buffer

-- JSP, SPRING 2012. 10. 9. 10:43
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

제목 : JSP에서 Buffer 속성의 차이점은?


페이지 디렉티브에서 버퍼 속성을 지정하지 않으면 기본적으로 8kb가 잡히잖아요.
이런 식으로 버퍼가 설정된 것과 버퍼를 none으로 설정한 것, 이 둘의 차이점을 아시는 분있으면 저같은 초보가 이해하기 쉽도록 상세하게 가르쳐주시면 고맙겠습니다.

너무 궁금한 건 많은데 제가 가지고 있는 책으로는 넘 부족해서요...인터넷에서도 어디 있는지 못찾겠구요..
부탁드립니다~

제목 : Re: Buffered IO의 개념을 찾아보세요.


buffer 속성은 jsp page가 서블릿으로 변환 될 때

JspWriter out = new JspWriter(bufferSize, autoFlush);


이 부분의 bufferSize에 들어가는 값입니다.


<jsp:include page=""/> 등으로 삽입되는 jsp 페이지는 autoFlush가 true로 설정됩니다. 그리고 include 전에 원 page의 out.flush()가 호출되고요. 여기서 8kb는 public static final int DEFAULT_BUFFER 로 선언된 값으로 기본 버퍼 사이즈 입니다.


항간에서는 기본 버퍼 사이즈가 비 현실적이라며 이 사이즈를 늘리게 하던가 일괄 설정할 수 있도록 표준을 정의하자는 논의도 있었던 것으로 알고 있습니다. 이 버퍼는 I/O관련 작업이 비싼 비용을 절감하기 위한 것으로 jsp페이지에서 생성되는 결과물을 미리 이 버퍼에 담았다가 out.flush()가 호출되던가 버퍼에 내용이 꽉 찬 시점에 클라이언트로 전송하게 됩니다.


8kb보다 큰 html문서를 생성할 경우 8kb씩 여러번에 나누어 네트웍으로 출력하게 됩니다. 이 때 비용을 감안해서 페이지가 큰 경우는 이 버퍼 사이즈를 늘림으로서 조금이나마 IO비용 절감을 노리는 것입니다.

버퍼 IO에 대한 개념은 c나 다른 언어의 버퍼와 같습니다. 버퍼의 실용성에 대해서는 보다 자세한 전문 기사를 참조하시는 것이 좋을 것 갔습니다. 저 또한 무지무지한 초보기에^^

bufferSize의 설정 값은 해당 페이지에서 최종 출력된 html의 값보다 좀 더 크게 설정해 주시면 될 것입니다. 하지만 기본 8kb로 두어도 왼만한 규모의 페이지에서는 무리가 없는 것으로 알고 있습니다.

출처 : http://www.javaservice.com/~java/bbs/read.cgi?b=servlet&c=r_p&n=1035475281

posted by 어린왕자악꿍