Microsoft Ajax - http://ajax.asp.net

 

Java BluePrints - https://blueprints.dev.java.net/

 

Protptype - http://www.prototypejs.org/

 

Scriptaculus - http://script.aculo.us/

 

Laszlo - http://www.openlaszlo.org/

 

GWT - http://code.google.com/webtoolkit/

 

AJAX.net - http://www.ajaxpro.info/

 

Yahoo - http://developer.yahoo.com/yui/

 

Active Widgets - http://www.activewidgets.com/

 

Tibco General Interface - http://developer.tibco.com/

 

Visual Web GUI - http://www.visualwebgui.com/

 

Dojo - http://dojotoolkit.org/

 

Backbase - http://www.backbase.com/

 

SmartClient - http://www.smartclient.com/

 

Nitobi - http://www.nitobi.com/

 

JackBe - http://www.jackbe.com

 

Zimbra - http://www.zimbra.com/

 

Rico - http://www.openrico.org/

 

Spry - http://labs.adobe.com/technologies/spry/

 

Aflax - http://www.aflax.org/

 

DWR - http://getahead.org/dwr

 

Moo.fx - http://moofx.mad4milk.net/

 

Mochikit - http://www.mochikit.com/

 

Xajax - http://www.xajaxproject.org/

 


Nexaweb - http://www.nexaweb.com





1. Cross-browser 라이브러리

 

x library (www.cross-browser.com)

베테랑 DHTML 라이브러리, 다양한 브라우저에서 동작하는 애니매이션, 스타일링, 이벤트, 기타의 공통 기능을 제공한다. 

 

Sarissa (http://sarissa.sf.net)

브라우저에 독립적으로 XML을 다루는  방법을 제공하는 자바스크립트 API

브라우저에 상관없이 자바스크립트 객체를 XML로 직렬화하는 기능, XSLT, XPath 쿼리 기능등의 다양한 XML 기술들을 지원한다.

 

Prototype  (http://prototype.conio.net/)

자바스크립 프로그래밍을 위한 범용의 헬퍼 라이브러리. 자바스크립트를 Object Oriented Programming 스타일로 작성위한 확장을 제공한다. 또한 견고한 Ajax 라이브러리를 포함한다.프로토타입은 Ruby on Rails, Rico, Scriptaculous 등에서 자바스크립트 엔진으로 사용된다.

 

2. 위젯 & 위젯 슈트

 

Scriptaculous (http://script.aculo.us)

다양한 시각효과(visual effect)를 지원하는 자바스크립트 라이브러리. 기본적으로 프로토타입을 사용하며 문서화가 잘 되어있다. 데모와 샘플애플리케이션, 드래그&드럽 라이브러리등을 지원한다.

 

Rico (http://openrico.org)

AJAX를 지원하는 다목적 프레임워크. 애니매이션, MVC의 분리, 드래그&드롭, 데이터그리드, 그외에 다양한 위젯등을 지원한다. 프로토타입 상에서 구현됨.

 

3. 애플리케이션 프레임워크

 

DWR, JSON-RPC, and SAJAX

다른 언어를 사용하지만, 이들은 모두 자바스크립트 코드로 부터 곧바로 서버측 함수(자바, 파이썬, 루비, 펄...)를 호출할 수 있는 방법을 지원한다.

 

DWR : http://www.getahead.ltd.uk/dwr/

JSON RPC : www.json-rpc.org/

SAJAX : www.modernmethod.com/sajax

 

Backbase (http://www.backbase.com/)

서버에서 생성된 HTML 문서안에 포함된 XML 태그를 실시간으로 리치위젯으로 바인딩할 수 있는 기능을 제공하는 browser-side 프레임웍이 되겠다. RICO가 표준 HTML 태그를 사용하는 반해, BackBase는 커스텀 XHTML 태그를 사용하여 UI 컴포넌트를 생성하는 것을 제외하고는 기본적인 원리는 RiCO의  behavior 컴포넌트와 비슷하다.

 

Echo2 (www.nextapp.com/products/echo2)

서버에 선언된 유저 인터페이스 모델로 부터 리치 UI 컴포넌트를 생성해주는 프레임워크.  Echo2는 순수 자바만으로 AJAX 애플리케이션을 만들 수 있다.

 

Ruby on Rails (www.rubyonrails.org)

루비 프로그래밍 언어로 쓰여진 웹 개발 프레임워크. 기본적으로 서버측 객체를 데이터베이스로  바로 매핑하는 기능, 테플릿을 사용해서 콘텐츠를 프리젠테이션하는 기능등을 제공한다. 최근버전에서는 프로토타입 라이브러리를 통해 ajax 강력 지원한다.

[출처] Ajax 구현 라이브러리 모음|작성자 잘난돌이

커스텀 태그란?

1. JSP 페이지에 재사용 가능한 코드를 조립하는 방법
2. 자바처리에 접근하는 것으로 끝나는 XML 형태
3. 확장된 자바빈즈, 이것은 JSP 페이지 안에서 그것을 사용하기 위해 간단한 인터페이스를 가진다.
4. 자바 프로그래머와 웹 디자이너가 서로 비즈니스를 행하기 위해 만나는 교차점

커스텀 태그의 장점

1. JSP사이트를 유지보수하기 쉽게 한다.
2. 이식성이 있다.
3. JSP를 확장한다.
4. 웹개발속도를 높인다.

커스텀 태그의 단점

1. 태그 라이브러리에서 재사용성을 달성하려면 웹 애플리케이션에 여분의 계층이 추가되어야 한다.
웹 애플리케이션 설계시 성능저하를 고려해야 한다.
2. 오직 JSP만을 위한것이다.
서블릿이나 다른 자바 기반솔루션으로 이동하지 못한다.
3. 과다사용의 우려
JSP프로젝트의 80%는 커스텀 태그에 기초, 20% 스크립틀릿에 기초

커스텀 태그 사용하기

1. 태그 라이브러리 가져오기

URI : 태그라이브러리를 식별하는 유일한 이름이다. 종종 URL형태이다.
이 이름은 JSP 컨테이너 초기파일(web.xml)에서 미리 정의된다.
PREFIX : JSP 컨테이너가 이 태그 라이브러리로부터 얻어지는 페이지에서 접두어 태그가 무엇인지 알려준다.
이름에 할당되는 규칙은 없다.

2. 태그라이브러리로부터 커스텀 태그 호출하기

<JAXP:trans>

커스텀 태그 만들기

1. 자바 객체를 생성한다.

페이지에 보낼 자바빈즈를 만드는 과정이다.

package com.jspinsider.jspkit.javascript;

public class JavaScriptExample extends java.lang.Object implements java.io.Serializable
{

public JavaScriptExample()
{
}

private String start_script ="<script language=\"JavaScript\">";
private String end_script ="</script>";

public String alert(Object aobj_data)
{
return( start_script + " alert(\"" + aobj_data.toString() + "\");" + end_script);
}
}

2. 태그 핸들러를 만든다.

태그가 실행하는 코드를 갖는다. 모든 실용적인 목적을 위해 실제 커스텀 태스를 생성하는 단계이다.
태그 핸들러가 되기 위해서는, 객체는 Tag, IterrationTag, BodyTag를 구현할 필요가 있다.
논리적인 관점에서 태그 핸들러를 만드는 것은 자바빈을 만드는 것과는 조금 다르다.
자바빈을 만들때는 공통적인 기능을 전부 모아서 만든다. 그러나 태그핸들러는 자바빈보다는 좀더 초점이 모아져 있고, 하나의 태그를 지원한다는 단일한 목적은 가진다.

package com.jspinsider.jspkit.javascript;

import java.io.IOException;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

public class JavaScriptExampleTag extends BodyTagSupport //태그에 몸체에 포함된 데이터를 읽기 위해 BodyTagSupport 사용
{
public int doEndTag() throws JspTagException
{
String ls_alert = "";

try
{
BodyContent lbc_bodycurrent = getBodyContent();

if(lbc_bodycurrent != null)
{
String ls_message = lbc_bodycurrent.getString();
JavaScriptExample JS = new JavaScriptExample();
ls_alert = JS.alert(ls_message.trim());
}
pageContext.getOut().write(ls_alert); //JSP 페이지의 출력 스트림 조작을 위해 사용
}

catch (IOException e)
{
throw new JspTagException("Error" + e.toString());
}
return EVAL_PAGE;
}
}

3. 태그 엑스트라인포클래스 만든다(선택사항)

TEI 클래스 또한 태그 핸들러로서 헬퍼 클래스를참조한다.

4. 태그 라이브러리 기술자 만든다

태그 라이브러리 기술자(TLD)는 커스텀 태그를 기술하고 정의하는 XML기반의 파일이다.
JSP컨테이너에게 각 태그 핸들러를 찾고 사용할 수 있는 곳을 알려주는 인덱스 파일이다.
파일명은 반드시 .tld 확장자로 저장되어야 한다.

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

<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>JavaScriptExampleTag</shortname>
<uri> http://www.jspinsider.com/jspkit/javascript </uri>
<info>A simple tag library for making a JavaScript alert </info>

<tag> //커스텀 태그가 필요한 만큼 <tag> 생성해준다.
<name>message</name>
<tagclass>com.jspinsider.jspkit.javascript.JavaScriptExampleTag</tagclass>
<info> Display Alert Box</info>
</tag>
</taglib>

5. JSP 컨테이너에 태그 라이브러리의 위치 알려주기

1) taglib선언이 JSP 페이지에 사용될때 TLD 파일 고유의 경로를 제공

<%@ taglib uri="/my_tag.tld" prefix="JavaScript"%>

2) 태그 라이브러리를 JAR파일로 묶는다.

<%@ taglib uri="/my_tag.jar" prefix="JavaScript"%>

3) web.xml 파일을 편집

<taglib>
<taglib-uri>
http://www.jspinsider.com/jspkit/javascript
</taglib-uri>
<taglib-location>
/WEB-INF/JavaScriptExampleTag.tld
</taglib-location>
</taglib>

6. JSP 페이지 만들기

<%@ taglib uri="http://www.jspinsider.com/jspkit/javascript" prefix="JavaScript"%>
<html>
<head>
</head>
<body>

<p>This is a simple test page</p>

<JavaScript:message >
This is a simple java alert message
</JavaScript:message>

</body>
</html>

태그 인터페이스

필드 설명
EVAL_BODY_INCLUDE 서버에게 몸체 내용을 평가하고 그것을 출력스트림에 넣으라는 태그
SKIP_BODY 서버에게 명확하게 몸체 내용을 하나도 처리하지 말라고 알린다. doStringTag()에 의해 반환
EVAL_PAGE 서버에게 페이지의 평가를 계속한다.
SKIP_PAGE 서버에게 페이지 나머지 부분을 처리하지 말라고 알린다.
메소드 설명
doStartTag 태그 핸들러가 이 핸들러 인스턴스에 대한 시작 태그를 만날 때, 서버는 모든 태그 핸들어에 대해서 이 메소드 호출
doEndTag 태그 핸들러가 이 핸들러 인스턴스에 대한 닫기 태그를 만날 때, 서버는 모든 태그 핸들러에 대해서 이 메소드를 호출

문서에 대하여

+ Recent posts