DWR 학습 노트 - HelloWorld 편

1. DWR 안내   DWR 은 자바 오픈 소스 라 이브 러 리 로 Ajax 사 이 트 를 실현 하 는 데 도움 을 줍 니 다.    브 라 우 저 에 있 는 자바 script 코드 를 웹 서버 에 있 는 자바 로 호출 할 수 있 습 니 다. 자바 코드 가 브 라 우 저 에 있 는 것 처럼.    DWR 는 주로 두 부분 을 포함한다.        서버 에서 실행 중인 Servlet 에서 요청 을 처리 하고 결 과 를 브 라 우 저 로 되 돌려 줍 니 다.        브 라 우 저 에서 실행 되 는 자바 script 은 요청 을 보 내 고 페이지 를 동적 으로 변경 할 수 있 습 니 다.    DWR 은 자바 류 의 동태 에 따라 자바 script 코드 를 생 성 합 니 다.이 코드 들 의 마력 은 전체 Ajax 호출 이 브 라 우 저 에서 발생 한 것 처럼 느껴 지지 만 사실은 서버 가 이 코드 를 실 행 했 고 DWR 은 데이터 의 전달 과 전환 을 책임 집 니 다.    이러한 자바 와 자 바스 크 립 트 간 의 원 격 호출 은 DWR 사용자 로 하여 금 예전 에 습관 적 으로 사 용 했 던 RMI 나 SOAP 의 RPC 메커니즘 처럼 느끼 게 할 것 이다.그리고 이 과정 은 추가 브 라 우 저 플러그 인 이 필요 하지 않 습 니 다.    자바 는 동기 화 되 어 있 고, Ajax 는 비동기 적 이다.따라서 원 격 방법 을 호출 할 때 DWR 에 리 셋 함 수 를 주 고 데이터 가 네트워크 에서 돌아 올 때 DWR 는 이 함 수 를 호출 합 니 다. 2. DWR 을 어떻게 사용 합 니까?   2.1. DWR 다운로드         다운로드 주소http://getahead.ltd.uk/dwr/download           저 는 dwr - 2.0.5 버 전 을 다운 받 았 습 니 다.   2.2  DWR 설치        웹 프로젝트 를 만 들 고 dwr. jar 를 웹 프로젝트 웹 app 의 WEB - INF\lib 디 렉 터 리 에 넣 습 니 다.     2.3 프로필 수정       웹. xml 파일 수정
 
  <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <display-name>DWR Servlet</display-name>
    <description>Direct Web Remoter Servlet</description>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

    <!-- This should NEVER be present in live -->
    <init-param>
      <param-name>debug</param-name>
      <param-value>true</param-value>
    </init-param>

    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>


       웹 앱\WEB - INF\디 렉 터 리 에 dwr. xml 파일 을 추가 합 니 다. 내용 은?
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">

<dwr>
  <allow>
    <create creator="new" javascript="Publisher" scope="application">
      <param name="class" value="hellodwr.HelloDWR"/>
    </create>
  </allow>
</dwr>

 
 2.4 HelloDWR 클래스 작성
    
package hellodwr;

public class HelloDWR {
    public String sayHello(String name) {
    	return "Hello " + name;
    }
}

 
 2.5 테스트 DWR
      이것 은 매우 유용 한 기능 입 니 다. 특히 초보 자 에 게 는 자신 이 작성 한 DWR 이 성공 적 으로 배치 되 었 는 지, 결과 가 정확 한 지 확인 할 수 있 습 니 다.
      응용 서버 에 프로젝트 를 배치 하고 서 비 스 를 시작 합 니 다.
      방문 주소: http://localhost:8080/hellodwr/dwr
   
Classes known to DWR:
HelloDWR (hellodwr.HelloDWR) 

 
  HelloDWR 를 누 르 면 방금 쓴 sayHello 방법 을 볼 수 있 습 니 다. execute 를 누 르 면 결 과 를 볼 수 있 습 니 다.
 
Methods For: HelloDWR (hellodwr.HelloDWR)
To use this class in your javascript you will need the following script includes:

  <script type='text/javascript' src='/hellodwr/dwr/interface/HelloDWR.js'></script>
  <script type='text/javascript' src='/hellodwr/dwr/engine.js'></script>

In addition there is an optional utility script:

  <script type='text/javascript' src='/hellodwr/dwr/util.js'></script>


There are 10 declared methods:

sayHello(  ); [execute] "Hello DWR" ---执行结果

 
 2.6 WEB 페이지 호출
       js 도입
<script type='text/javascript' src='<%=appPath%>/dwr/engine.js'></script>
<script type='text/javascript' src='<%=appPath%>/dwr/util.js'></script>
<script type='text/javascript' src='<%=appPath%>/dwr/interface/HelloDWR.js'></script>


 
  js 호출
 
//调用DWR函数
function invokeDWR() {
    HelloDWR.sayHello('DWR', callback);
}

//回调函数
function callback(obj) {
    alert(obj);
}




invokeDWR();//调用dwr,提示"Hello DWR"

  
    

좋은 웹페이지 즐겨찾기