sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
extra_vars4 | |
extra_vars5 | |
extra_vars6 |
http://javaora.tistory.com/104 DWR은 JavaScript 에서 Java Function을 Java에서 JavaScript Function 을 쉽게 호출 가능하도록 만들어 주는 RPC 라이브러리(library)이다.
DWR은 많은 사용자와 활성화된 메일링리스트를 가지고 있으며, 아메리칸 에어라인 항공사의 예약 사이트와 월마트 쇼핑 사이트 등을 포함한 많은 프로젝트에서 사용되어졌다.
DWR은 아래와 같은 많은 특징들을 가지고 있다.
- 배치를 실행(call batching)
- Java와 JavaScript 사이의 (바이너리 파일 업로딩, 다운로딩을 포함한) 어떤 임의의 data structure를 전송
- 예외 처리(exception handling)
- 향상된 CSRF(Cross-Site Request Forgery) 방지
- Spring 과 Guice 같은 Java 서버 사이드 기술들과의 통합성
첫번째 다이어그램은 DWR이 어떻게 select list의 컨텐츠를 JavaScript 이벤트를 통해 변경할 수 있는지를 보여준다.
역 Ajax(Reverse Ajax, DWR 버젼 2.0부터 가능하다.)는 서버에서 실행되는 Java 코드로부터 클라이언트 단에서 보여지는 페이지내로 JavaScript를 보내는 것을 허용한다. 이는 수동으로 생성하거나 또는 Java API를 이용하여 생성되어진다. 이 생성되어지는 JavaScript 는 일반적으로 클라이언트 단(client-side)의 API와 일치한다.
DWR 은 두가지 주요 부분으로 구성되어 있다:
- 서버상에서 구동되는 Java Servlet - request를 처리하고, 브라우져로 response를 되돌려 보낸다.
- 브라우져상에서 구동되는 JavaScript - request를 보내고, 이를통해 웹페이지의 동적 업데이트가 가능하다.
DWR은 Java class에 기반한 동적으로 생성된 JavaScript에 의해 동작한다. 이 코드는 마치 마법과 같이 브라우져상에서 실행되는 것 처럼 느끼게 해준다. 하지만 실제로는 코드를 서버에서 실행하고 DWR은 Data의 전송을 담당한다.
이 Java로부터 JavaScript로의 원격 함수(remote function) 호출 방식은 DWR 사용자에게 RMI와 SOAP과 같은 전통적인 RPC 메카니즘과 같은 느낌을 주며, 웹브라우져 플러그인 없이 웹을 통해 실행되는 이익을 준다.