japanese site
온라인강좌책메일다운로드동아리쇼핑기술지원기업정보갤러리동영상 블로그
『신개념 4단계 리눅스기술지원 시스템 공개』

※ 『무료 리눅스 배포판 배송서비스』 ※

 
jsp tag library기초강좌
조회 : 7,499  


JSP Tag Library 란 custom tag 를 만들어서 사용하는 JSP 의 고급기술이라고 할 수 있는 것 중의 하나입니다. Bean 보다 진일보된 개념으로 MVC(Model View Control) 을 완벽하게 구현해줍니다.

<% %> 를 사용하지 않고도 동적인 표현을 가능하게 하므로 소스코드에 대해서 디자이너가 보다 쉽게 접근할 수 있습니다. (^^ 아직 저도 실무에 적용해보진 않았습니다.)

아직 저도 실력이 미천한 관계로, 책보고 공부한 것을 정리 겸 해서 썰을 풀어보겠습니다. 사실 소스 설명보다는 파일 위치만 알려주는 정도일 것이니 너무 기대는 하지마세요.

일단 jsp tag library 를 사용하시려면 jsp 엔진이 jsp spec 1.1 이상이어야 합니다. jsp 1.0 은 tag library 를 지원하지 않습니다. 이 강좌를 테스트한 jsp 엔진은 Tomcat 3.2.3 입니다.

기초적인 단계로 tag 를 이용해서 단순히 text 를 출력하는 것을 시도해보겠습니다. 소스의 출처는 Manning출판사에서 나온 JSP Tag Libraries 책 chapter3 입니다. 제가 경로랑 text를 약간 수정한 것입니다.

일단 tag handler class 는 java 파일인데, javax.servlet.jsp.* 을 import 하기 때문에 servlet.jar 파일이 classpath 에 잡혀있어야 합니다. resin 일 경우 jsdk22.jar 나 jsdk23.jar 파일이 상응합니다. jakarta-tomcat/lib/ 디렉토리에 있는 servlet.jar 파일을 다음 위치로 복사해줍니다. 권장은 시스템 재부팅입니다. 안해도 먹히는 경우가 있지만, ^^; 어디까지나 권장입니다. 다른 방법은 환경변수(classpath)에 추가해도 되겠지만 전 이 방법을 더 선호합니다. 편求歐楮? 어느 위치냐 하면 jdk1.3/jre/lib/ext 아래입니다.



tag handler class 인 OkTag.java 파일입니다. tag 를 처리(handle)해주는 것이죠.
파일의 위치는 package 와 관계있습니다.
물론 classpath 에 자신이 있으신 분들은 자유롭게 위치시켜주세요. 아닌 분들은 절 따라오시구요.
일단 ROOT 디렉토리가 c:/jakarta-tomcat/webapps/ROOT 라고 가정하고 이것은 / 로 표시를 하겠습니다. /WEB-INF 는 c:/jakarta-tomcat/webapps/ROOT/WEB-INF 와 같은 뜻입니다.
(^^; 사실 경로 부분 설명하기가 제일 힘듭니다.)
이 소스를 /WEB-INF/classes/ok/tag/OkTag.java 위치에 저장합니다.

OkTag.java
package ok.tag;

import java.io.IOException;

import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;

public class OkTag
	extends TagSupport {
	
    public int doStartTag()
		throws JspException
    {
        try {
            pageContext.getOut().print("OKJSP 태그라이브러리");
        } catch(IOException ioe) {
          throw new JspTagException("Error:  IOException while writing to the user");
        }
        return SKIP_BODY;
    }
}

아주 가장 기본적인 tag handler 입니다. 이 뼈대를 갖고 점진적으로 확장을 하면서 코딩을 하게 되죠. 기초라는 얘기는 아주 쉽다란 뜻도 있지만, 없어서는 안된다는 뜻도 갖고 있습니다. 코드 하나 하나를 눈여겨 보시면 됩니다. 뭐 굳이 외울 필요까지는... 왜냐하면 3번이상 반복하면 저절로 외워지게 됩니다.(*_*; 천재냐구요? 옙 저는 천재, 퍽# 크헉#$%#$,~ T_T; 자꾸 사용하면 저절로 외워진다는 뜻임다. 그게 와땀니다.)

컴파일은 도스창(cmd 창) 띄우고 cd c:/jakarta-tomcat/webapps/WEB-INF/classes/ok/tag 로 가서, javac OkTag.java 하시면 됩니다.

다음에 필요한 파일은 tld(Tag Library Descriptor) 설명파일입니다.
tag handler file의 위치와 필요한 속성들을 설명해주는 파일이죠.
jsp 엔진으로 하여금 tag handler 를 빨리 인식하도록 해주는 역할을 하는 파일입니다.
소스의 문법은 xml 입니다. 어~ 저기 가지마세요. xml 별로 어려운 거 아니니까요.
아주 기본적인 xml 규칙만 알고 있으면 됩니다. 그거 별거 없슴다. 20줄도 안됨다.
고저 우리 연변에서는 20줄짜리 tld는 tld 축에도 못낍니다. 100줄짜리 정도 되야 좀 쓸만한 tld 구나라고 생각합니다. 10000줄짜리 tld 파일 보셨슴니까.
퍽#@#$#!@ (^^; 죄송합니다. 수다맨이 요즘 너무 좋아서리... 좀 따라해봤습니다.)

oktags.tld
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.suncom/j2ee/dtds/web-jsptaglibrary_1_1.dtd">

<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>oktg</shortname>
<uri> http://www.okjsp.pe.kr/ok-taglib </uri>
<info>
A simple sample tag library
</info>

<tag>
<name>oktag</name>
<tagclass>ok.tag.OkTag</tagclass>
<bodycontent>empty</bodycontent>
<info>
Just Beginning.
</info>
</tag>
</taglib>


다음에 필요한 파일은 tld(Tag Library Descriptor) 설명파일입니다. tag handler file의 위치와 필요한 속성들을 설명해주는 파일이죠. 또한 jsp 소스에서 사용되는 이름을 지정해줍니다. oktag 라는 tag를 사용하게 될 것입니다. 소스의 문법은 xml 입니다. 어~ 저기 가지마세요. xml 별로 어려운 거 아니니까요. 아주 기본적인 xml 규칙만 알고 있으면 됩니다. 그거 별거 없슴다. 20줄도 안됨다. 고저 우리 연변에서는 20줄짜리 tld는 tld 축에도 못낍니다. 100줄짜리 정도 되야 "좀 쓸만한 tld 구나"라고들 말 합니다. 10000줄짜리 tld 파일 보셨슴니까. 퍽#@#$#!@ (^^; 죄송합니다. 수다맨이 요즘 너무 좋아서리... 좀 따라해봤습니다.). 파일의 위치는 /WEB-INF/oktags.tld 입니다.

파일의 위치는 /WEB-INF/web.xml 입니다. 문서의 맨 첫줄은 반드시 <?xml version="1.0" encoding="ISO-8859-1"?> 로 시작해야 합니다. 이 웹 xml은 tld 파일을 jsp 엔진 하여금 tag handler 를 빨리 인식하도록 해주는 역할을 하는 파일입니다. <taglib-uri> 에 관해서는 jsp 소스에서 지정하는 uri와 맞아야합니다만 현재로서는 저도 명확하게 이해를 하지 않은 부분입니다.

web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>
<taglib>
<taglib-uri>
http://www.okjsp.pe.kr/ok-taglib
</taglib-uri>
<taglib-location>
/WEB-INF/oktags.tld
</taglib-location>
</taglib>
</web-app>



이상 3개의 파일을 사용하는 jsp 파일은 다음과 같습니다. 이 파일을 /jsptag.jsp 로 저장( / 디렉토리)한 다음에 브라우저에서 http://localhost/jsptag.jsp 를 호출해 보십시오.

jsptag.jsp
<%@ page contentType="text/html;charset=euc-kr"%><%@ taglib
uri="http://www.okjsp.pe.kr/ok-taglib"
prefix="jspx" %>
<html>
<title><jspx:oktag/></title>
<body>
Exceuting your first custom tag... <b><jspx:oktag/></b>
</body>
</html>

성공하셨다면 참 잘 되었습니다만, 만일 제대로 컴파일이 되지 않거나 실행이 안된다면 메시지 보시고, 잘 풀어가세요. 오늘은 이정도에서 그만하겠습니다. tips 에 올린 oktag.zip 파일을 갖고 테스트 해보십시오.


http://okjsp.pe.kr

[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=636


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
(주) 수퍼유저

 
   
 


『신개념 4단계 리눅스기술지원 시스템 공개』

CentOS 리눅스 전문서적 국내최초출시

 
회사소개 | 보도기사 | 채용안내 | 광고안내 | 이용약관 | 개인정보취급방침 | 책임한계와 법적고지 | 불편사항 신고하기 | 사이트맵
ㅇ 서울 : 서울특별시 강남구 노현로79길 66, 402호(역삼동,청송빌딩)  ㅇ 부산 : 부산광역시 해운대구 우동 1470 에이스하이테크21 914호
ㅇ 대표 : 1544-8128 ㅇ부산직통 : 051-744-0077 ㅇ서울직통 : 02-856-0055 ㅇ FAX : 02-6280-2663
ㅇ 사업자번호 : 128-86-68239 ㅇ 통신판매업 신고번호 : 2013-부산금정-0035호 ㅇ 개인정보책임자 : 이재석
ㅇ 상호명 : (주) 수퍼유저 ㅇ 대표자 : 박성수
Copyright ⓒ (주)수퍼유저. All rights reserved.

 아 이 디
 비밀번호
회원 가입 | 비밀번호 찾기

블로그~
 
▷ 웹개발언어
PHP
JSP
python
기타
책제목
리눅스서버관리실무바이블v3.0


저자 박성수
페이지수 2,032 pages
펴낸곳(주)수퍼유저

리눅스 서버 구축 및 관리에 필요한 거의 모든 부분과 전반적인 실무 기법들을 다루고 있음
책제목
리눅스보안관리실무(2/E)


저자홍석범
페이지수 820 pages
펴낸곳(주)수퍼유저

리눅스 보안에 관련된 내용을 종합적으로 쓴 책. 저자의 명성 그대로 보안관련의 모든 내용이 그대로 담겨져 있다.