minimize

事業拡大のため、新しい仲間を募集しています。
→詳しくはこちら

DWRを使うには、何らかのサーブレットコンテナで
アプリケーションを開発する必要があります。
このコンテンツではTomcatを使いますが、他のコンテナでも同様です。
DWRは非常に依存性の低いライブラリですので、
おそらく他のコンテナでも問題無く使用できるはずです。

設定ファイル関係

まず、DWR のサイトからパッケージをダウンロードします。

ダウンロードしたファイル内にある dwr.jar を
対象Webアプリの WEB-INF/lib 以下にコピーします。
そして、WEB-INF/web.xml に以下を追加します。

<servlet>
  <display-name>DWR Servlet</display-name>
  <servlet-name>dwr-invoker</servlet-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 というファイルを新規に作成します。
内容は、例えば以下のようにします。

<?xml version="1.0" encoding="UTF-8" ?>
<dwr>
  <allow>
    <create creator="new" javascript="AjaxClass">
      <param name="class" value="pack1.AjaxClass"/>
    </create>
    <convert converter="bean" match="pack1.AjaxBean"/>
  </allow>
</dwr>

dwr/allow/create 要素に、Ajaxとして利用するクラス名を定義します。
そして dwr/allow/convert 要素に、データのやり取りに利用するBeanクラスを定義します。

HTML内での使用

DWRは、HTML内ならばどこからでも利用できます。
以下の記述をHTML内に追加するだけです。

<script src="dwr/interface/AjaxClass.js"></script>
<script src="dwr/engine.js"></script>
<script src="dwr/util.js"></script>

1行目の AjaxClass の部分は、dwr.xml 内で定義された
dwr/allow/create#javascript 属性の値である必要があります。
また、srcの部分は正確には絶対パスで /コンテキスト名/dwr/... です。
ただし、ソース内にコンテキスト名をハードコーディングするのは良くないので
なるべくなら相対パスでの指定にしましょう。

実際のクラス作成は、次のステップで説明します。