서블릿 기능 중 별도로 기능을 디자이너가 작업하기 쉽게 하기 위해 JSP가 등장했다.
JSP는 HTML과 CSS와 자바스크립트를 기반으로 JSP에서 제공하는 여러 가지 구성 요소들을 사용해 화면을 구현하는 기술이다. 주로 웹 프로그램의 화면 기능과 모델2 기반 MVC에서 뷰(View) 기능을 담당한다.
브라우저에서 JSP 파일을 요청하면 톰캣 컨테이너는 요청된 JSP 파일을 자바 파일(.java)로 변환한다.
그리고 변환된 자바 파일을 클래스 파일(.class)로 컴파일한다.
이 클래스 파일을 실행하여 브라우저로 결괏값을 전송하면 JSP가 브라우저 화면에 표시된다.
즉, 브라우저로 전송되는 결과는 HTML, CSS와 자바스크립트로 변환된 파일이다.
JSP 페이지에서 사용되는 여러 가지 구성 요소는 다음과 같다.
- 디렉티브 태그
- 스크립트 요소
- 표현 언어
- 내장 객체
- 액션 태그
- 커스텀 태그
디렉티브 태그는 주로 JSP 페이지에 대한 전반적인 설정 정보를 저장할 때 사용하는 태그이다.
- 페이지 디렉티브 태그 : JSP 페이지의 전반적인 정보를 설정할 때 사용한다.
- 인클루드 디렉티브 태그 : 공통으로 사용하는 JSP 페이지를 다른 JSP 페이지에 추가할 때 사용한다.
- 태그라이브 디렉티브 태그 : 개발자나 프레임워크에서 제공하는 태그를 사용할 때 사용한다.
속성 | 기본값 | 설명 |
---|---|---|
info | 없음 | 페이지를 설명해 주는 문자열을 지정 |
language | "java" | JSP 페이지에서 사용할 언어 지정 |
contentType | "text/html" | JSP 페이지 출력 형식 지정 |
import | 없음 | JSP 페이지에서 다른 패키지의 클래스를 임포트할 때 지정 |
session | "true" | JSP 페이지 HttpSession 객체의 사용 여부 지정 |
buffer | "8kb" | JSP 페이지 출력시 사용할 버퍼 크기 지정 |
autoFlush | "true" | JSP 페이지의 내용이 출력되기 전 버퍼가 다 패워질 경우 동작 지정 |
errorPage | "false" | JSP 페이지 처리 도중 예외가 발생할 경우 예외 처리 담당 JSP 페이지 지정 |
isErrorPage | "false" | 현재 JSP 페이지가 예외 처리 담당 JSP 페이지인지 지정 |
pageEncoding | "ISO-8859-1" | JSP 페이지에서 사용하는 문자열 인코딩 지정 |
isELIgnored | "true" | JSP 2.0 버전에서 추가된 기능으로 EL 사용 유무 지정 |
페이지 디렉티브 형식은 다음과 같이 <%@page %> 안에 속성과 값을 나열한다.
<%@ page 속성1="값1" 속성2="값2" 속성3="값2"... %>
이클립스에서 jsp 페이지를 만들면 자동으로 생성되는 페이지 디렉티브이다.
<%@ page contentType="text/html; charset=utf-8"
import="java.util.*" // 임포트할 패키지
language="java" // 사용할 언어
session="true" // 페이지에서 HttpSession 객체의 사용여부
buffer="8kb" // buffer의 크기 jsp페이지의 출력 크기
autoflush="true" // buffer가 다 채워질 경우 동작을 지정
isThreadSafe="true" // 하나의 jsp페이지가 동시에 여러부라우저의 요청을 처리할수 있는지 여부
info="(shoppingMall..............)" // 페이지를 설명해주는 문자열
isErrorPage="false" // 현재 페이지가 에러 처리를 담당하는 페이지 인지
errorPage="" $>
jsp 페이지로 웹 페이지를 만들다 보면 제목이나 로고를 표시하는 상단, 메뉴를 표시하는 왼쪽 단은 화면이 바뀌더라도 일정하게 유지되는 경우가 많다.
JSP에서는 공통으로 사용되는 JSP 페이지를 미리 만들어 놓고 다른 JSP 페이지 요청 시 인클루드 디렉티브 태그를 사용한다.
인클루드 디렉티브 태그란 여러 JSP 페이지에서 사용되는 공통 JSP 페이지를 만든 후 다른 JSP 페이지에서 공통 JSP 페이지를 포함 시켜 사용하는 기능을 말한다.
<%@ include file="공통기능.jsp" %>