Top / Java / Direct Web Remoting(DWR)をつかう

概要

DWR(Direct Web Remoting)とは、J2EEサーバ上のJavaプログラムをJavaScript?から呼び出すためのライブラリです。Ajaxのライブラリと説明される事が多いですが、サーバ上のJavaクラスをhttp経由で呼び出せる一種のRPCってかんじです。わかりにくいですが、FlexRemoteObject?と似てますね。あっちはFlashからJavaクラスをリモート呼出しします。こっちはJavaScript?からJavaクラスをリモート呼出しします。

ダウンロード

http://getahead.org/dwr/download よりWARをダウンロードします。

インストール

インストールは

ってかんじです。

web.xmlには

 <servlet-name>dwr-invoker</servlet-name>
 <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
 <init-param>
   <param-name>debug</param-name>
   <param-value>true</param-value>
 </init-param>
 <init-param>
     <param-name>activeReverseAjaxEnabled</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>

などを追加します。

dwr.xmlには

<dwr>
  <allow>
    <create javascript="HelloWorld" creator="new">
      <param name="class" value="nu.mine.kino.services.HelloWorld" />
    </create>
    <convert converter="bean" match="nu.mine.kino.services.Model"/>
  </allow>
</dwr>

など、JavaScript?から呼び出したいビジネスロジックが書いてあるクラス(HelloWorld?)や、引数や戻り値となるオブジェクト(nu.mine.kino.services.Model)を記述しておきます。このようにしておくと、JSPやHTML内で、

<script type="text/javascript" src="dwr/engine.js"> </script>
<script type="text/javascript" src="dwr/util.js"> </script>
<script type="text/javascript" src="dwr/interface/HelloWorld.js"> </script>
<script type="text/javascript">
function show() {
  var input = dwr.util.getValue("input");
  HelloWorld.sayHello(input,callback);
}

function callback(message){
  dwr.util.setValue("result", message);
}
</script>

などのようにさもJavaScript?すなわちクライアントサイドでJavaクラスを呼ぶような記述でサーバのロジックを呼び出すことができるわけです。

上の例だと

dwr/engine.js
dwr/util.js
dwr/interface/HelloWorld.js

は先のブリッジのサーブレットDwrServlet?が勝手に生成して返してくれます。HelloWorld?.jsはサーバ上のビジネスロジックと同じメソッドが定義されているJavaScript?でクライアント側のプロキシとして動作します。


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Java / Direct Web Remoting(DWR)をつかう

現在のアクセス:19377


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS