Custom Tag 사용방법 ex) <prefix:tagName attributes >
1. custom tag library를 build Path에 추가
2. taglib 지시자로 library를 Loading(prefix 결정)
3. <prefix:tagName attributes>
jsp 스펠에 따라 기본 제공되는 커스텀 태그, prefix가 jsp
어떤 동작을 지시하는 태그
접두어로 네임스페이스를 분리하여 태그 형식의 자바 코드를 완성할 수 있는 일종의 서버사이드 태그
jsp 내에서 스크립틀릿 기호 없이 자바 객체를 사용할 수 있다.
다양한 커스텀 태그들의 등장과 Model2 아키 텍처의 적용으로 점점 더 그 쓰임새가 줄어 들고 있는 추세
웹 사이트를 구성하는 페이지 들은 동일한 상단, 좌측 메뉴 그리고 하나의 푸터를 갖는다.
이런 공통 구성요소를 위한 코드를 모든 JSP페이지마다 작성한다면 코드 중복이 발생하게 된다.
이를 방지 하기 위해서 <jsp:include>액션 태그와 jsp 디렉티브 방식을 이용하여 모듈화한다.
1. main.jsp가 웹 브라우저의 요청을 받는다.
2. [출력내용 A] 를 출력 버퍼에 저장한다.
3. <jsp:inclue>가 실행되면 요청 흐름을 sub.jsp로 이동한다.
4. [출력내용 B]를 출력 버퍼에 저장한다.
5. sub.jsp의 실행이 끝나면 요청 흐름이 다시 main.jsp의<jsp:include>로 돌아온다.
6. <jsp:include> 이후 부분인 [출력 내용 C]를 출력 버퍼에 저장한다.
7. 출력 버퍼의 내용을 응답 데이터로 전송한다.
<jsp:include> 액션 태그의 두 속성은 다음과 같다.
<jsp:include> 와 마찬가지로 페이지를 포함해주는 기능을 제공하지만 include 디렉티브는 포함 방식에서 차이를 보인다.
include 디렉티브는 다른 파일의 내용을 현재 위치에 삽입한 후에 JSP 파일을 자바 파일로 변환하고 컴파일하는 방식이다.
<%@ include file="포함할 파일"%>
코드 차원에서 삽입이 이루어지기 때문에 사입되는 파일에서 선안한 변수를 삽입하는 JSP에서 사용할 수 있다.
모든 JSP 페이지에서 사용되는 변수 지정 및 저작권 표시와 같은 간단하면서도 모든 페이지에서 중복되는 문장 등에 활용할 수 있다.
다음과 같이 변수를 선언하는 파일을 만들어 준다.
ex) <commonVariable.jspf>
<%@ page contentType = "text/html; charset = euc-kr" %>
String memberID = (String)session.getAttribute("MEMBERID");
File tempFolder = (File)application.getAttribute("TEMPFOLDER");
만들어준 파일을 include 디렉티브로 포함해 준다.
<%@ include file="commonVariable.jspf" %>
기준 | 동적 include | 정적 include |
---|---|---|
시점 | Rutime | 소스 코드 컴파일 단계 |
대상 | '실행 결과'를 출력 버퍼에 include | 소스 코드(code fragment) 자체를 include |
목적 | 특정 페이지가 중복되어 하나의 jsp 객체를 재활용하기 위해서 사용 | 특정 변수나 메서드 즉 소스 자체가 중복되는 경우, 중복 코드 제거를 위해 사용 |
방식 | <jsp:include page="" /> or RequestDaispatcher.include() | <%@ include file="" %> (Directive) or web.xml의 jsp-config 엘리먼트를 사용한 코드 조각 길광 include |
https://docs.oracle.com/javaee/5/tutorial/doc/bnahe.html#bnahf