□ コンテンツ
- 環境
- メリット
- 手順
環境
Windows 7 64bit
Tomcat 7 ※Tomcat7 の設定は, 筆者のブログを参照してください
DWR 3.1 rc
DWR は, Direct Web Remote といって, Java で Ajax を扱うライブラリです。
クライアントサイドは, JavaScript でつくり, 非同期ポストをJavaScript で投げて,
サーバサイドはJava で行うものです。
メリット
Java クラスと, JavaScript 変数の相互変換機能があり, 両方での操作が非常に簡単
Ajax を簡単に実現できる
デメリット
日本語の参考資料が少ないし, 特集している本も少ない
●手順
1. dwr.jar を取得
http://directwebremoting.org/dwr/index.html
2. commons-logging.jar を取得
ApacheのWebサイトからとってきてください。
3. 上記の.jar を Tomcat プロジェクトの WEB-INF/lib に入れる
4. web.xml に以下の記述を加えます。
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<servlet-class>org.directwebremoting.servlet.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>
DWRServlet クラスを dwr-invoker という名前で追加 /dwr/ という, URLパターンで追加します。
package com.atmarkplant.dwr;
public class Remote
{
public String getData ( int number )
{
return "AKB" + number;
}
}
今回は, Remote というクラスを作りました。 引数に数字をとって,
文字列を返す単純なものです。
6. Java Script のコードを書く
<html>
<head>
<script src='../../dwr/interface/Remote.js'></script>
<script src='../../dwr/engine.js'></script>
<script src='../../dwr/util.js'></script>
<script type="text/javascript">
Remote.getData(48, {
callback:function(str) { alert(str); },
timeout:5000,
errorHandler:function(message) { alert("Oops: " + message); }
});
</script>
<body>
</body>
</head>
</html>
実際に, HTMLやJSPで利用するには,
<script src='/[YOUR-WEBAPP]/dwr/interface/[YOUR-SCRIPT].js'></script> // 要は, mappingへのパスを通すわけだ.
<script src='/[YOUR-WEBAPP]/dwr/engine.js'></script>
<script src='dwr/util.js'></script> // utilはオプションかな?
と書く必要あります
ここが核です↓
Remote.getData(48, {
callback:function(str) { alert(str); },
timeout:5000,
errorHandler:function(message) { alert("Oops: " + message); }
});
これで, Java(サーバーサイドのRemoteクラスを呼び出し, 返ってきた値を
callback 関数 function(str){ alert(str);} で処理, ( str がJava 関数の戻り値)
最終的にalert(str) を実行
callback 関数 function(str){ alert(str);} で処理, ( str がJava 関数の戻り値)
最終的にalert(str) を実行
7. DWR の設定 dwr.xml を WEB-INF の中に入れる
赤字は, バージョンによりけり , 2.0 系なら 20 とすべし。
赤字は, バージョンによりけり , 2.0 系なら 20 とすべし。
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"
"http://getahead.org/dwr/dwr30.dtd">
<!-- -->
<dwr>
<allow>
<create creator="new" javascript="Remote">
<param name="class" value="com.atmarkplant.dwr.Remote"/> // クラスのパス
</create>
</allow>
0 件のコメント:
コメントを投稿