-
[JSP]JSP INCLUDE의 종류( jsp:include와 <%@ include %> 차이)카테고리 없음 2020. 7. 19. 22:08
JSP include 방식은 2가지 방식이 있다.
1. <jsp:include>
*설명
- 동적인 방식(액션태그방식)
- 서버측 include가 아닌 클라이언트측 include 방식이다.
즉, 컴파일된 출력 결과를 include 한다
- 부모jsp, 자식jsp => 부모jsp컴파일, 자식jsp컴파일 => 부모jsp에 자식jsp를 보여줌.
예) a.jsp(include를 하는 부모 jsp) 와 b.jsp(include되는 자식 jsp)
a.jsp가 컴파일 되고, b.jsp가 컴파일이 따로 따로 된 후
파일이로딩이 되면서 자식파일을(b.jsp) 불러와서 보여주는 방식이다.
*장점
- 변수 추적이 쉬워 유지보수 하기가 쉽다.(param형태로 파라미터를 넘기기 때문에 추적이 쉽다.)
- 동적으로 페이지 할당이 가능하다
- include파일(자식jsp)의 변경이 자주 일어나는 경우 사용한다
(자식jsp파일의 수정이 일어나도 즉시 적용이 됩니다.)*단점:
- 로딩 속도가 상대적으로 느리다
파일이 각각 컴파일이 된 후 화면이 로딩될 때마다 부모jsp에 자식jsp를 계속해서 불러와서 보여줘야 하기 때문에 느리다.
예를들어 include되는 파일이 수십개가 된다고 하면 화면을 호출할때마다 수십개의 파일을 계속해서 불러와서 보여줘야 하기 때문에 속도가 느리다.
2. <%@ include %>
*설명
- 정적인방식(디렉티브 방식 = 액션태그 방식)
- 서버측 include 방식 이다.
- 현재 페이지에 include(자식jsp)파일이 삽입된다.
- 부모jsp, 자식jsp => (부모+자식)합처진 새로운 1개 파일 컴파일 => 새로운1개파일을 보여줌.
*장점
- 속도가 빠르다
- include된 파일에 선언에 변수를 부모jsp에서도 별도 선언없이 사용가능하다
- 여러페이지를 1개의 페이지로 합친 후 그 1개의 파일만 컴파일이 되기 때문에 성능상 이점이 있다.
-
*단점
- 변수의 추적이 어렵다.
(부모jsp에 선언된 변수를 자식jsp에서도 사용이 가능하기때문에 변수 추적이 어렵다)
- 부모jsp를 수정하지 않는 이상 자식jsp가 수정이 되어도 별도로 컴파일이 일어나지 않아 적용이 안된다.
(자식jsp를 수정 후 적용을 하기 위해 부모jsp파일도 수정 및 touch 등을 해줘야 적용이 된다.)
(이유는 기본적으로 서버에서 include된 jsp파일 변경여부를 점검하지 않기 때문에 별도로 컴파일이 되지않아 적용이 안되는 것이다.)