JSP 개요
JSP 기술
JSP
- 동적으로 웹 컨텐츠를 만들기 위한 기술
- 서버 측 스크립트 언어 : HTML 안에 자바 코드를 포함시킬 수 있음, 서블릿 코드를 작성하는 편리한 방법을 제공
JSP 언어의 확장 메커니즘
- 표현 언어(EL)의 사용
- JSTL 같은 태그 라이브러리 사용
JSP 문서
템플릿 데이터
- 정적 데이터, HTML, XML 형식의 텍스트
- 응답 결과가 그대로 출력되는 텍스트
JSP 요소
- 동적인 데이터의 추가
- JSP 태그로 표현되는 프로그래밍적 요소
- 적절한 Java 코드로 변역되어 동적 컨텐츠가 만들어짐
JSP 페이지의 구성 요소
- 스크립트 요소(scripting elements)
- 지시어(directives)
- 액션 태그(action tags)
- 내장 객체(implicit objects)
- 표현 언어(expression language)
- JSTL과 사용자 정의 태그
- 주석 : <%-- 주석입니다 --%>
JSP 동작 원리
JSP의 처리 과정
1. JSP 페이지 최초 요청 처리
- JSP 페이지(.jsp)를 서블릿 자바 프로그램(.java)로 변환
- 서블릿 자바 프로그램(.java)을 컴파일 => 서블릿 클래스 파일(.class)을 생성
- 서블릿(.class)을 실행하여 클라이언트 요청을 처리
2. 이후 요청 처리
- JSP 페이지에 상응하는 서블릿이 존재하면 변환과 컴파일을 하지 않음
- 단, JSP 페이지가 수정되면 다시 변환/컴파일 작업을 해야 함
출력 버퍼와 응답
출력 버퍼의 사용
- 출력 버퍼는 응답 결과의 임시 저장소
- 응답을 만들 때 먼저 출력 버퍼에 기록함
- page 지시어 buffer 속성이 none 일 경우에는 출력 버퍼를 사용하지 않음
- 기록이 끝나면 버퍼의 내용을 클라이언트에 전달
- 종료 전 버퍼가 차면, 버퍼를 비우고 전달(flush) 함 (page 지시어 autoFlush 속성이 true 일 경우)
- page 지시어 autoFlush 속성이 flase일 경우 버퍼가 가득 찰 경우 예외 발생
버퍼를 사용하는 이유
- 데이터 전송 효율의 향상
- 실행 도중 버퍼를 비우고 새로운 내용을 넣을 수 있음 : 에러 발생 할 경우 다른 내용으로 바꾸는 경우 등
- 클라이언트에 전송 전이라면 버퍼에 있는 헤더의 내용도 수정 가능 : 헤더 정보는 응답 몸체를 전송하기 전에 먼저 전송됨
'프로그래밍언어 > JSP' 카테고리의 다른 글
[JSP] 표현 언어(expression language) (0) | 2021.09.13 |
---|---|
[JSP] 액션 태그(action tags) (0) | 2021.09.12 |
[JSP] 내장 객체(implicit objects) (0) | 2021.09.12 |
[JSP] 지시어(Directive) (0) | 2021.09.08 |
[JSP] 스크립트 요소(scripting elements) (0) | 2021.09.02 |