45

chapter 14 : JSP 고급 4

  • Upload
    stella

  • View
    71

  • Download
    1

Embed Size (px)

DESCRIPTION

chapter 14 : JSP 고급 4. 학습목표. 커스텀 태그 종류 JSTL ( JSP Standard Tag Library ) 사용자 커스텀 태그. 커스텀 태그 작성 클래스 기반 커스텀 태그 작성 태그 파일 기반 커스텀 태그 작성. 웹 애플리케이션 배포. 커스텀 태그. 정의. 개발자가 직접 자신만의 태그를 만들어 사용할 수 있는 기술로서 JSTL 과 EL 에서 제공하지 않는 것을 작성하여 사용 가능하다 . - PowerPoint PPT Presentation

Citation preview

Page 1: chapter 14  : JSP  고급 4
Page 2: chapter 14  : JSP  고급 4

chapter 14chapter 14 : :

JSP JSP 고급고급 44

Page 3: chapter 14  : JSP  고급 4

학습목표학습목표

커스텀 태그 종류커스텀 태그 종류

JSTL ( JSP Standard Tag Library )JSTL ( JSP Standard Tag Library )

사용자 커스텀 태그사용자 커스텀 태그

웹 애플리케이션 배포웹 애플리케이션 배포

커스텀 태그 작성커스텀 태그 작성

클래스 기반 커스텀 태그 작성클래스 기반 커스텀 태그 작성

태그 파일 기반 커스텀 태그 작성태그 파일 기반 커스텀 태그 작성

Page 4: chapter 14  : JSP  고급 4

커스텀 태그커스텀 태그

정의정의 개발자가 직접 자신만의 태그를 만들어 사용할 수 있는 기술로서개발자가 직접 자신만의 태그를 만들어 사용할 수 있는 기술로서 JJSTLSTL 과 과 ELEL 에서 제공하지 않는 것을 작성하여 사용 가능하다에서 제공하지 않는 것을 작성하여 사용 가능하다 ..개발자가 정의한 자신만의 커스텀 태그를 모아놓은 것을 ‘커스텀 개발자가 정의한 자신만의 커스텀 태그를 모아놓은 것을 ‘커스텀 태그 라이브러리’ 라고 한다태그 라이브러리’ 라고 한다 ..

특징특징 한 번 작성한 커스텀 태그는 재사용이 가능하다한 번 작성한 커스텀 태그는 재사용이 가능하다 ..프로그램의 가독성을 향상 시킬 수 있다프로그램의 가독성을 향상 시킬 수 있다 ..JSPJSP 의 스크립트를 사용하지 않기 때문에 자바 문법에 의존적이지 의 스크립트를 사용하지 않기 때문에 자바 문법에 의존적이지 않다않다 ..업무의 효율성을 향상 시킬 수 있다업무의 효율성을 향상 시킬 수 있다 ..

종류종류 JSP 1.2 – JSP 1.2 – 클래식 커스텀 태그클래식 커스텀 태그JSP 2.0 – SimpleTag JSP 2.0 – SimpleTag 와 태그 파일와 태그 파일

Page 5: chapter 14  : JSP  고급 4

커스텀 태그커스텀 태그

구현구현 자바의 클래스 파일 기반으로 구현 자바의 클래스 파일 기반으로 구현 ( ( 커스텀 태그 핸들러 이용 커스텀 태그 핸들러 이용 ))

JSP 1.2 JSP 1.2 기반의 클래식 커스텀 태그기반의 클래식 커스텀 태그 JSP 2.0 JSP 2.0 기반의 기반의 SimpleTagSimpleTag

태그 파일 기반으로 구현태그 파일 기반으로 구현

JSP 2.0 JSP 2.0 기반의 태그 파일 기반의 태그 파일

자바

클래스파일TLD 파일

(.tld )

web.xml JSP

페이지

태그파일

(.tag)

JSP

페이지

Page 6: chapter 14  : JSP  고급 4

커스텀 태그 핸들러 이용커스텀 태그 핸들러 이용

Page 7: chapter 14  : JSP  고급 4

자바의 클래스 파일 기반 구현자바의 클래스 파일 기반 구현

구현 순서구현 순서자바

클래스파일TLD 파일

(.tld)

web.xml JSP

페이지

커스텀 태그 정의( 구조 , 로직 )

자바클래스파일을태그로 사용할 수 있도록 등록 JSP 페이지에서

사용할 수 있도록TLD 파일 등록

JSP 페이지에서 태그 사용WEB-INF\tlds

폴더에 저장한다 .

Page 8: chapter 14  : JSP  고급 4

자바의 클래스 파일 기반 구현자바의 클래스 파일 기반 구현

CLASSPATH CLASSPATH 설정설정.;C:\Tomcat 5.0\common\lib\servlet-api.jar;C:\Tomcat 5.0\common\lib\jsp-api.jar

Page 9: chapter 14  : JSP  고급 4

자바의 클래스 파일 기반 구현자바의 클래스 파일 기반 구현

javax.servlet.jsp.tagext javax.servlet.jsp.tagext 계층 구조계층 구조

Page 10: chapter 14  : JSP  고급 4

자바의 클래스 파일 기반 구현자바의 클래스 파일 기반 구현

javax.servlet.jsp.tagext javax.servlet.jsp.tagext 패키지 구조패키지 구조

Page 11: chapter 14  : JSP  고급 4

javax.servlet.jsp.tagext javax.servlet.jsp.tagext 인터페이스인터페이스

JSP 1. 2 JSP 1. 2 기반 구현기반 구현

Page 12: chapter 14  : JSP  고급 4

JSP 1. 2 JSP 1. 2 기반 구현기반 구현

실습실습 예제 예제 1 ( body1 ( body 가 없는 예제 가 없는 예제 ))

ClassicTag.java ClassicTag.java 핸들러 작성한다핸들러 작성한다 ..classic.tldclassic.tld 파일 작성한다파일 작성한다 ..web.xml web.xml 에서 에서 tldtld 등록한다등록한다 ..classic.jspclassic.jsp 에서 태그 사용한다에서 태그 사용한다 ..

커스텀 태그 핸들러 작성 커스텀 태그 핸들러 작성 ( ClassicTag.java )( ClassicTag.java )

Page 13: chapter 14  : JSP  고급 4

JSP 1. 2 JSP 1. 2 기반 구현기반 구현

tld tld 파일 작성 파일 작성 ( classic.tld )( classic.tld )stand-examplesstand-examples 의 의 tld tld 파일을 이용한다파일을 이용한다 ..

Page 14: chapter 14  : JSP  고급 4

JSP 1. 2 JSP 1. 2 기반 구현기반 구현

tld tld 파일 저장 위치 파일 저장 위치 ( ( 컨테이너가 자동으로 찾는다 컨테이너가 자동으로 찾는다 ))

WEB-INF WEB-INF 안안 ..

WEB-INF WEB-INF 아래 하위 디렉토리 안아래 하위 디렉토리 안 ..

WEB-INF/lib WEB-INF/lib 밑에 밑에 JAR JAR 파일로 배포했다면 파일로 배포했다면 JARJAR 안 안 META-INFMETA-INF 디렉토리디렉토리 ..

WEB-INF/lib WEB-INF/lib 밑에 밑에 JAR JAR 파일로 배포했다면 파일로 배포했다면 JARJAR 안 안 META-INFMETA-INF 아래 하위 디렉토리아래 하위 디렉토리 ..

Page 15: chapter 14  : JSP  고급 4

JSP 1. 2 JSP 1. 2 기반 구현기반 구현

web.xml web.xml 파일 수정파일 수정tld tld 파일을 등록한다파일을 등록한다 ..

jspjsp 에서 에서 tag tag 사용사용taglib directive taglib directive 태그를 이용한다태그를 이용한다 ..<%@ taglib prefix=“<%@ taglib prefix=“ 접두사” 접두사” uri=“web.xmluri=“web.xml 에서 설정된 에서 설정된 uriuri 값” 값” %>%>

JSP 1.2

Page 16: chapter 14  : JSP  고급 4

JSP 1. 2 JSP 1. 2 기반 구현기반 구현

JSP 2.0JSP 2.0 에서 매핑 에서 매핑 web.xmlweb.xml 에 에 <taglib><taglib> 를 사용할 필요가 없다를 사용할 필요가 없다 ..컨테이너가 자동으로 컨테이너가 자동으로 tldtld 파일과 파일과 <uri><uri> 이름에 대한 매핑을 한다이름에 대한 매핑을 한다 ..

taglib taglib 지시자의 지시자의 uriuri 값은 위치가 아닌 일반 문자열 값이다값은 위치가 아닌 일반 문자열 값이다 ..

Page 17: chapter 14  : JSP  고급 4

JSP 1. 2 JSP 1. 2 기반 구현기반 구현

실습실습 예제 예제 2 ( body2 ( body 가 있는 예제 가 있는 예제 ))

ClassicBodyTag.java ClassicBodyTag.java 핸들러 작성한다핸들러 작성한다 ..classicBody.tldclassicBody.tld 파일 작성한다파일 작성한다 ..classicBody.jspclassicBody.jsp 에서 태그 사용한다에서 태그 사용한다 ..

커스텀 태그 핸들러 작성 커스텀 태그 핸들러 작성 ( ClassicBodyTag.java )( ClassicBodyTag.java )

Page 18: chapter 14  : JSP  고급 4

JSP 1. 2 JSP 1. 2 기반 구현기반 구현

tld tld 파일 작성 파일 작성 ( classicBody.tld )( classicBody.tld )

Page 19: chapter 14  : JSP  고급 4

JSP 1. 2 JSP 1. 2 기반 구현기반 구현

taglib directive taglib directive 태그를 이용한다태그를 이용한다 ..<%@ taglib prefix=“<%@ taglib prefix=“ 접두사” 접두사” uri=“web.xmluri=“web.xml 에서 설정된 에서 설정된 uriuri 값” 값” %>%>

jspjsp 에서 에서 tag tag 사용사용

Page 20: chapter 14  : JSP  고급 4

JSP 2.0 JSP 2.0 기반 구현기반 구현

JSP 2.0 JSP 2.0 특징특징JSP 1.2JSP 1.2 에서는 에서는 bodybody 의 처리유무에 따라서 의 처리유무에 따라서 TagSupport TagSupport 또는 또는 BoBodyTagSupport dyTagSupport 클래스를 선택해야 된다클래스를 선택해야 된다 ..JSP 2.0 JSP 2.0 에서는 에서는 bodybody 처리유무에 상관없이 처리유무에 상관없이 SimpleTag SimpleTag 인터페이스에서 처리한다인터페이스에서 처리한다 ..실제적인 구현은 실제적인 구현은 SimpleTagSupport SimpleTagSupport 클래스를 상속받아 커스텀 클래스를 상속받아 커스텀 태그 핸들러를 작성한다태그 핸들러를 작성한다 ..

Page 21: chapter 14  : JSP  고급 4

JSP 2.0 JSP 2.0 기반 구현기반 구현

실습 예제 실습 예제 11( body( body 가 없는 예제 가 없는 예제 ))

SimpleTag.java SimpleTag.java 핸들러 작성한다핸들러 작성한다 ..simple.tldsimple.tld 파일 작성한다파일 작성한다 ..simple.jspsimple.jsp 에서 태그 사용한다에서 태그 사용한다 ..

커스텀 태그 핸들러 작성 커스텀 태그 핸들러 작성 ( SimpleTag.java )( SimpleTag.java )

Page 22: chapter 14  : JSP  고급 4

tld tld 파일 작성 파일 작성 ( simple.tld )( simple.tld )

JSP 2.0 JSP 2.0 기반 구현기반 구현

Page 23: chapter 14  : JSP  고급 4

taglib directive taglib directive 태그를 이용한다태그를 이용한다 ..<%@ taglib prefix=“<%@ taglib prefix=“ 접두사” 접두사” uri=“web.xmluri=“web.xml 에서 설정된 에서 설정된 uriuri 값” 값” %>%>

jspjsp 에서 에서 tag tag 사용사용

JSP 2.0 JSP 2.0 기반 구현기반 구현

Page 24: chapter 14  : JSP  고급 4

JSP 2.0 JSP 2.0 기반 구현기반 구현

실습 예제실습 예제 2 2 ( body( body 가 있는 예제 가 있는 예제 ))

SimpleBodyTag.java SimpleBodyTag.java 핸들러 작성한다핸들러 작성한다 ..simpleBody.tldsimpleBody.tld 파일 작성한다파일 작성한다 ..simpleBody.jspsimpleBody.jsp 에서 태그 사용한다에서 태그 사용한다 ..

커스텀 태그 핸들러 작성 커스텀 태그 핸들러 작성 ( SimpleBodyTag.java )( SimpleBodyTag.java )

Page 25: chapter 14  : JSP  고급 4

tld tld 파일 작성 파일 작성 ( simpleBody.tld )( simpleBody.tld )

JSP 2.0 JSP 2.0 기반 구현기반 구현

Page 26: chapter 14  : JSP  고급 4

taglib directive taglib directive 태그를 이용한다태그를 이용한다 ..<%@ taglib prefix=“<%@ taglib prefix=“ 접두사” 접두사” uri=“web.xmluri=“web.xml 에서 설정된 에서 설정된 uriuri 값” 값” %>%>

jspjsp 에서 에서 tag tag 사용사용

JSP 2.0 JSP 2.0 기반 구현기반 구현

Page 27: chapter 14  : JSP  고급 4

JSP 2.0 JSP 2.0 기반 구현기반 구현

실습 예제 실습 예제 3 3 ( ( 태그 태그 bodybody 에 표현식 에 표현식 ))SimpleBodyExTag.java SimpleBodyExTag.java 핸들러 작성한다핸들러 작성한다 ..simpleBodyEx.tldsimpleBodyEx.tld 파일 작성한다파일 작성한다 ..simpleBodyEx.jspsimpleBodyEx.jsp 에서 태그 사용한다에서 태그 사용한다 ..

커스텀 태그 핸들러 작성 커스텀 태그 핸들러 작성 ( SimpleBodyExTag.java )( SimpleBodyExTag.java )

Page 28: chapter 14  : JSP  고급 4

tld tld 파일 작성 파일 작성 ( simpleBodyEx.tld )( simpleBodyEx.tld )

JSP 2.0 JSP 2.0 기반 구현기반 구현

Page 29: chapter 14  : JSP  고급 4

taglib directive taglib directive 태그를 이용한다태그를 이용한다 ..<%@ taglib prefix=“<%@ taglib prefix=“ 접두사” 접두사” uri=“web.xmluri=“web.xml 에서 설정된 에서 설정된 uriuri 값” 값” %>%>

jspjsp 에서 에서 tag tag 사용사용

JSP 2.0 JSP 2.0 기반 구현기반 구현

Page 30: chapter 14  : JSP  고급 4

JSP 2.0 JSP 2.0 기반 구현기반 구현

실습 예제 실습 예제 4 4 ( ( 태그 태그 bodybody 의 반복처리 의 반복처리 ))

SimpleBodyLoopTag.java SimpleBodyLoopTag.java 핸들러 작성한다핸들러 작성한다 ..simpleBodyLoop.tldsimpleBodyLoop.tld 파일 작성한다파일 작성한다 ..simpleBodyLoop.jspsimpleBodyLoop.jsp 에서 태그 사용한다에서 태그 사용한다 ..

커스텀 태그 핸들러 작성 커스텀 태그 핸들러 작성 ( SimpleBodyLoopTag.java )( SimpleBodyLoopTag.java )

Page 31: chapter 14  : JSP  고급 4

tld tld 파일 작성 파일 작성 ( simpleBodyEx.tld )( simpleBodyEx.tld )

JSP 2.0 JSP 2.0 기반 구현기반 구현

Page 32: chapter 14  : JSP  고급 4

taglib directive taglib directive 태그를 이용한다태그를 이용한다 ..<%@ taglib prefix=“<%@ taglib prefix=“ 접두사” 접두사” uri=“web.xmluri=“web.xml 에서 설정된 에서 설정된 uriuri 값” 값” %>%>

jspjsp 에서 에서 tag tag 사용사용

JSP 2.0 JSP 2.0 기반 구현기반 구현

Page 33: chapter 14  : JSP  고급 4

태그 파일 이용태그 파일 이용

Page 34: chapter 14  : JSP  고급 4

태그 파일 기반태그 파일 기반

특징특징 JSP 2.0 JSP 2.0 기반에서 제공하는 방법이다기반에서 제공하는 방법이다 ..커스텀 태그를 정의한 태그 파일을 생성 후 커스텀 태그를 정의한 태그 파일을 생성 후 JSP JSP 페이지에서 해당 페이지에서 해당 태그를 사용하는 방법이다태그를 사용하는 방법이다 ..해당 태그파일이 내부적으로 태그 핸들러로 변환된다해당 태그파일이 내부적으로 태그 핸들러로 변환된다 ..태그파일명이 태그파일명이 JSPJSP 에서 사용하는 태그이름이 된다에서 사용하는 태그이름이 된다 ..

태그파일

(.tag)

JSP

페이지

WEB-INF\tags 폴더에 저장한다 .

Page 35: chapter 14  : JSP  고급 4

tag tag 디렉티브 디렉티브

용도용도태그 파일의 설정 정보를 기술하는데 사용된다태그 파일의 설정 정보를 기술하는데 사용된다 ..

방법방법<%@ tag %><%@ tag %>

속성들속성들

Page 36: chapter 14  : JSP  고급 4

tag tag 디렉티브 디렉티브

실습 예제 실습 예제 ( body( body 가 없는 경우 가 없는 경우 ))tagTest.tag tagTest.tag 을 작성한다을 작성한다 ..tagTest.jsp tagTest.jsp 을 작성한다을 작성한다 ..

Page 37: chapter 14  : JSP  고급 4

tag tag 디렉티브 디렉티브

실습 예제 실습 예제 ( body( body 가 있는 경우 가 있는 경우 ))tagBodyTest.tag tagBodyTest.tag 을 작성한다을 작성한다 ..tagBodyTest.jsp tagBodyTest.jsp 을 작성한다을 작성한다 ..

Page 38: chapter 14  : JSP  고급 4

attribute attribute 디렉티브 디렉티브

용도용도태그 파일에서 커스텀 태그의 속성을 명시한다태그 파일에서 커스텀 태그의 속성을 명시한다 ..

방법방법<%@ attribute %><%@ attribute %>

속성들속성들

Page 39: chapter 14  : JSP  고급 4

실습 예제실습 예제tagAttTest.tag tagAttTest.tag 을 작성한다을 작성한다 ..tagAttTest.jsp tagAttTest.jsp 을 작성한다을 작성한다 ..

attribute attribute 디렉티브 디렉티브

Page 40: chapter 14  : JSP  고급 4

웹 애플리케이션 배포웹 애플리케이션 배포

Page 41: chapter 14  : JSP  고급 4

웹 애플리케이션 배포웹 애플리케이션 배포

WAR WAR 파일파일기본적인 웹 애플리케이션 구조를 기본적인 웹 애플리케이션 구조를 WAR WAR 파일로 압축해서 배포한다파일로 압축해서 배포한다 ..

webTest.war

WAR WAR 파일 특징파일 특징웹 애플리케이션 구조에 대한 이식성이 좋다웹 애플리케이션 구조에 대한 이식성이 좋다 ..WAR WAR 파일이름이 파일이름이 Tomcat Tomcat 에서는 에서는 ContextContext 명이 된다명이 된다 ..TomcatTomcat 의 의 webapps webapps 폴더에 저장하면 자동으로 압축이 해제된다폴더에 저장하면 자동으로 압축이 해제된다 ..

Page 42: chapter 14  : JSP  고급 4

웹 애플리케이션 배포웹 애플리케이션 배포

작성 방법작성 방법

실습 예제실습 예제

Page 43: chapter 14  : JSP  고급 4

웹 애플리케이션 배포웹 애플리케이션 배포

Page 44: chapter 14  : JSP  고급 4

웹 애플리케이션 배포웹 애플리케이션 배포

Page 45: chapter 14  : JSP  고급 4

공부한 내용공부한 내용

커스텀 태그 작성법커스텀 태그 작성법

SimpleTagSupport APISimpleTagSupport API

태그 파일 작성태그 파일 작성

웹 애플리케이션 배포웹 애플리케이션 배포