DWR(Direct Web Remote)

[DWR] DWR 의 개요와 사용법

MorningPhys 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

반응형