1. 디렉티브방식

1
<%@ include file="~~"%>
  • 정적 include 방식, 인클루드 되는 내용이 단순하게 텍스트로 포함되어 컴파일이 된다. (복사된다는 느낌)
  • 주의할점은 비록 포함되는 페이지라 하더라도 한글을 제대로 처리하기 위해서는 포함되어지는 jsp파일 상단에 인코딩 명시를 해줘야 한다.
  • 포함되어지는 jsp 내용이 변경이 될 경우 해당 jsp를 사용하는 jsp를 강제로 변경(touch) 해줘서 다시 컴파일이 되게 해야하는 불편함이 있다.
  • 정적 방식이기 때문에 예로들어 전역변수를 인클루드 되는 jsp에서 지정하게 되면 상위jsp에서 사용이 가능하게 된다.

2. 액션태그 방식

1
<jsp:include page="~~"/>
  • 동적 include 방식, 포함하는 문서와 상관없이 동적으로 컴파일 된다. (완전히 별도로 동작하기 때문에 변수를 동시에 사용하려면 따로 파라미터로 넘겨줘야 한다.)
  • flush 옵션은 요청흐름이 넘어가면서 현재까지 페이지의 결과를 출력할 것인지 말것인지를 결정하는것이다. 일반적으로 false로 설정한다.
  • <jsp:param>를 이용하여 파라미터를 전송할수 있다.
    1
    2
    3
    4
    <jsp:include page="..." flush="false">
    <jsp:param name="name" value="이름" />
    <jsp:param name="pageName" value="페이지이름"/>
    </jsp:include>

3. JSTL 방식

1
<c:import url="~~" />
  • JSTL(JSP Standard Tag Library) 태그중의 하나
  • 컴파일 되고 동작하는 방식은 액션태그<jsp:include page="~~"/>와 같음
  • 현재 컨테이너 안에 있는 자원외에 다른 외부 자원도 포함이 가능하다.
1
<c:import url="http://www.google.com/"/>
  • 아래와 같이 보다 더 다양한 옵션이 제공된다
    1
    2
    3
    4
    5
    <c:import! url="읽어올 URL"
    var="읽어올 데이터를 저장할 변수명"
    scope="변수의 공유 범위"
    varReader="리소스의 내용을 Reader 객체로 읽어올 때 사용"
    charEncoding="읽어온 데이터의 캐릭터셋 지정" />