◆ 버퍼 (Buffer)
페이지 정보
작성자 관리자 작성일 21-07-15 18:48 조회 414 댓글 0본문
jsp 페이지는 생성된 결과를 곧바로 브라우저에 전송하지 않고 출력버퍼라고 불리는 곳에 임시로 출력 결과를 저장해 두었다가,
한번에 웹 브라우저에 전송한다.
1. 출력버퍼를 사용하는 이유
1) 작은 데이터를 여러 번 전송하는 것 보다 한번 큰 데이터를 정송하므로 전송 성늘이 향상된다,.
2) 응답결과가 바로 전송되지 않기 때문에 JSP 실행 도중 출력버퍼를 지우고 새로운 내용을 보여줄 수 있다.
- 응답결과를 생성하는 도중 에러가 발생했을 시 출력버퍼를 비우고 에러페이지를 출력할 수 있도록 할 수 있다.
3) 버퍼가 다 차기 전까지는 헤더를 변경할 수 있다.
- 출력된 이후에는 더 이상 헤더정보를 수정할 수 없다.
2. page 디렉티브에서 버퍼 설정하기
buffer를 설정하는 방법
<%@ page buffer="8kb" %> <!-- kb를 붙이지 않으면 에러 발생 -->
<!-- 또는 -->
<%@ page buffer="none" %>
1) buffer 크기를 8kb 로 지정해서 buffer를 사용하기로 명시되어 있다.
속성을 지정하지 않으면 기본값으로 8kb가 지정된다.
JSP 규약에서 기본값으로 최소 8kb이상의 크기를 갖는 버퍼를 사용하도록 규정
그 이유는 대부분 어플리케이션이 만들어 내는 출력 결과가 8kb 이고, 8kb 에서 가장 이상적인 성능을 보이기 때문이다.
2) buffer를 사용하지 않도록 설정하는 내용이다.
buffer를 사용함으로써 얻는 모든 이점을 사용할 수 없고
<jsp:forward> 기능을 사용할 수 없게 된다.
<jsp:forward> 액션태그는 지정한 경로로 요청을 이동시키는 기능이다.
3. buffer 의 autoFlush 속성
buffer 는 autoFlush 속성이 지정되지 않은 경우 기본적으로 autoFlush 를 true 로 설정해서 적용되어 있다.
이는 출력버퍼에 데이터가 꽉차게 되면 자동으로 flush 하여 브라우저에 결과를 출력하고 버퍼를 비운 후 계속해서 결과를 버퍼에 쌓아가도록 하는 기능이다.
<%@ page buffer="8kb" autoFlush="true" %>
<!-- 또는 -->
<%@ page buffer="8kb" autoFlush="true" %>
위처럼 autoFlush 를 설정할 수 있는데 autoFlush를 false로 설정한 경우 출력버퍼가 꽉차게 되면 에러가 발생하게 된다.
반면 true 인 경우 출력버퍼가 꽉차면 자동으로 응답결과를 브라우저로 출력(Flush)하게 되므로 에러가 발생하지 않는다.
댓글목록 0
등록된 댓글이 없습니다.