BLOG main image
분류 전체보기 (313)
교육 (13)
NEIS (6)
Edufine (0)
Programmer (5)
Android Programming (1)
Internet W3 (18)
JAVA Programming (9)
JSP/Servlet (1)
Framework (7)
Spring For Beginner (4)
eGovFrame (10)
MEAN Stack (2)
NodeJS (5)
SublimeText (30)
SublimeText_Tips (18)
Eclipse (16)
JavaScript (8)
jQuery (12)
jQuery_tips (1)
Ajax (3)
DWR(Direct Web Remote) (4)
JSON(JS Object Notation) (4)
Oracle (2)
MySQL (28)
OS (16)
Download (3)
Life (10)
Favorit Site (1)
Books (2)
Healthy (1)
Stocks (1)
HTML5/CSS (1)
Python (4)
Security (7)
CISSP (0)
Ruby On Rails (5)
일기장 (0)
영어 교과서(중2) (3)
알고리즘 (0)
Go Lang (3)
VB 2010 (12)
C# (1)
정보보안기사(네트워크보안) (0)
업무 활용 엑셀 (11)
틈틈이 활용팁 (14)
하루 하루 살아가며 ……. (2)
기술 (1)
파이썬 & 데이터분석 (1)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2015. 7. 17. 17:50

DWR(Direct Web Remoting) 의 개요

DWR(Direct Web Remoting)은 프락시 기반 Ajax 프레임워크 로 자바스크립트에서 서버측 로직을 호출하도록 만들어주는 프레임워크이다.

 

그림에서 보여지는 것처럼 JSON-RPC JAVA처럼 객체를 생성할 필요없이

바로 서버에서 자바 객체를 찾아 메소드를 호출해서 사용할 수 있는 매우 강력한 프락시 기반 AJAX 프레임워크이다.

DWR의 사용법

  • dwr.jar을 설치한다.
    dwr은 dwr.jar와 dwr.war 두 가지 형태로 배포되고 있다.
    dwr.war 파일은 jar 파일에 더하여 몇가지 예제와 web.xml의 템플릿을 제공한다.

    겟어헤드에서 dwr.jar를 다운받은 후 아래와 같이 세 단계를 거쳐 dwr.jar를 설치하면 된다.
  • 다운받은 dwr.jar를 WEB-INF/lib 디렉토리에 넣는다.
  • config 파일을 수정한다.
    web.xml에 다음 내용을 추가한다.
    <servlet>
      <servlet-name>dwr-invoker</servlet-name>
      <display-name>DWR Servlet</display-name>
      <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
      <init-param>
         <param-name>debug</param-name>
         <param-value>true</param-value>
      </init-param>
    </servlet>
    
    <servlet-mapping>
      <servlet-name>dwr-invoker</servlet-name>
      <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping>
    


    WEB-INF 아래에 dwr.xml을 생성한다.
    dwr.xml 파일은 클래스와 클래스의 메소드를 자바스크립트에서 사용할 수 있도록 해준다.

    <!DOCTYPE dwr PUBLIC
        "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
        "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
    <dwr>
      <allow>
        <create creator="new" javascript="JDate">
          <param name="class" value="java.util.Date"/>
        </create>
        <create creator="new" javascript="Demo">
          <param name="class" value="your.java.Bean"/>
        </create>
      </allow>
    </dwr>
    
  • new creator는 자바클래스의 public 생성자(the public no-args constructor)를 사용한다.
    생성자를 자바스크립트에서 그대로 사용하기 때문에 두 가지 제약 사항을 가진다.

    • 자바스크립트의 예약어(reserved word)를 사용하지 말자.
    • 자바스크립트는 메소드 오버로딩을 지원하지 않으므로 오버로딩된 메소드는 피한다. 자바스크립트가 어느 것을 호출할지 알 수가 없다.

 

  • 다음과 같은 코드를 찾아 html이나 jsp 파일에 입력한다.

<script src='/[YOUR-WEBAPP]/dwr/interface/[YOUR-SCRIPT].js'></script> <script src='/[YOUR-WEBAPP]/dwr/engine.js'></script>

 

 

                두 가지 js 파일을 웹 애플리케이션에서 찾아보면 존재하지 않는 것을 알게 된다.

                두 가지는 dwr 서블릿으로 매핑되어 자바스크립트 코드를 애플리케이션으로 전송한다.

  • 호출된 URL에서 등록된 메서드의 목록을 볼 수 있다.
    excute 버튼을 이용해 파라메터를 입력하고 메소드를 실행해볼 수 있다.
불행히도 dwr.xml을 사용하기 위해서는 JDK 1.4.2 and JDK 5 이상을 사용해야 한다.
xml parser 에러로 인해 하위 버전에는 문제가 생길 수 있다고 함.

 

 

[출처] http://www.javajigi.net/pages/viewpage.action?pageId=3920

반응형