Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP에서 인클루드 액션(jsp:include)과 인클루드 지시문(include directive)의 차이점

JSP에서 포함(Include) 처리 방식의 두 가지 방법

JSP에서는 다른 파일을 현재 페이지에 삽입하는 두 가지 방법을 제공합니다. 바로 인클루드 액션(include action)인클루드 지시문(include directive)입니다. 두 방식 모두 외부 파일을 페이지에 포함시키지만, 파일이 삽입되는 시점에서 중요한 차이가 있습니다.

1. 인클루드 액션(jsp:include)

인클루드 액션은 생성되고 있는 페이지에 다른 파일의 내용을 삽입할 때 사용합니다. 기본 문법은 다음과 같습니다.

<jsp:include page = "상대 URL" flush = "true" />

인클루드 액션은 JSP 페이지가 서블릿으로 변환(컴파일)되는 시점이 아니라, 페이지가 요청(request)되는 시점에 해당 파일을 삽입합니다. 즉, 매 요청마다 포함된 파일의 최신 내용이 반영되므로, 자주 변경되는 동적 콘텐츠를 포함할 때 적합합니다.

2. 인클루드 지시문(include directive)

반면 인클루드 지시문은 다음과 같은 문법을 사용합니다.

<%@ include file = "상대 URL" %>

이 지시문은 JSP 페이지가 서블릿으로 변환되는 번역(translation) 시점에 파일의 내용을 정적으로 삽입합니다. 따라서 포함된 파일이 이후 변경되더라도, JSP 페이지를 다시 컴파일하기 전까지는 변경 사항이 반영되지 않습니다.

핵심 차이점 정리

  • 삽입 시점: 인클루드 액션은 요청 시점에, 인클루드 지시문은 번역(컴파일) 시점에 파일을 삽입합니다.
  • 동적/정적 처리: 액션은 매 요청마다 최신 내용을 반영하는 동적 포함이며, 지시문은 한 번 병합된 후 고정되는 정적 포함입니다.
  • 사용 사례: 자주 바뀌는 콘텐츠나 동적 리소스에는 액션을, 헤더·푸터처럼 거의 변하지 않는 공통 코드에는 지시문을 사용하는 것이 효율적입니다.

결론적으로, 두 방식의 가장 큰 차이는 파일이 포함되는 시점입니다. 페이지 실행 시마다 최신 상태를 유지해야 한다면 <jsp:include> 액션을, 빌드 시점에 고정된 정적 콘텐츠라면 <%@ include %> 지시문을 선택하면 됩니다.