반응형
0. JSP 파일 실행 과정
1. 서블릿 코드로 변환된 후
2. 컴파일 되어 class 파일로 만들어진다.
3. 이를 실행한 결과물을 HTML 형태로 웹 브라우저에 보내 최종적으로 화면에 출력한다.
- JSP가 생성한 결과는 웹 브라우저로 즉시 전송되는 것이 아니라,
우선 버퍼에 저장되었다가 일정량이 되었을 때 전송한다. - 만약 실행 중 에러가 발생하면 버퍼에 저장된 내용을 삭제하고 에러화면을 표시한다.
- JSP에서는 버퍼를 사용함으로써
- 페이지 전달(포워드)
- 에러 페이지 처리
를 할 수 있다.
더보기
* 버퍼 (Buffer)
버퍼라는 개념은 매우 다양하게 사용된다.
가장 쉽게 접할 수 있는 곳은 스트리밍 서비스이다.
네트워크로 데이터를 전송할 때, 작은 단위로 여러번 전송하는 것보다 큰 단위로 한 번에 보내는 것이 효율적이다.
이를 위해 버퍼라는 임시 저장소를 두어 데이터들이 충분히 쌓일 때까지 기다렸다가 보낸다.
-> 입력 시 버퍼에 먼저 저장하고, 버퍼가 가득 차면 전송한다.
1. buffer 속성
- page 지시어의 buffer 속성으로 버퍼의 크기를 설정할 수 있다.
default는 8kb이다.
<%@ page ... buffer="1kb" ...%>
버퍼를 사용하고 싶지 않다면 (이런 경우는 거의 없다)
<%@ page ... buffer="none" ...%>
- 버퍼를 사용하지 않으면 포워드나 에러 페이지 기능을 사용할 수 없다.
- 또한 버퍼 크기를 줄이면 JSP의 기능을 온전히 사용할 수 없게 되므로 거의 사용하지 않는다.
2. autoFlush 속성
- 버퍼가 모두 채워졌을 때 처리 방법을 정하는 데에 쓰인다.
- true(default): 버퍼가 채워지면 자동으로 flush(데이터를 목적지로 전송하고 버퍼 비우기)
- false: 버퍼가 채워지면 예외를 발생시킨다.
3. buffer/autoFlush 속성 예제
<%@ page ... buffer="1kb" autoFlush="false" ... %>
파일 내에 위와 같은 속성을 지닌 페이지 태그가 있을 때,
...
<%
for (int i = 1; i <= 100; i++) {
out.println("abcde12345");
}
%>
...
를 통해 10글자 * 100번 (1kb)를 출력하면,
파일 내 다른 태그들의 크기가 모두 포함되면서 결론적으로 1kb를 넘는다.
위에서 buffer를 1kb로, autoFlush를 false로 설정했으니
이 상황에서는 예외가 발생될 것이다.
[Must Have 성낙현의 JSP 자바 웹 프로그래밍] 을 보고 정리한 내용입니다.
반응형
'독서기록 > JAVA' 카테고리의 다른 글
JSP 내장 객체 영역(Scope)/page/request/session/application (0) | 2023.04.08 |
---|---|
JSP 내장 객체/request/response/out/application/exception (0) | 2023.04.06 |
댓글