web.xmlにサーブレットを登録する
では、Webアプリケーションの作成をしていきましょう。DWRを利用する場合、いくつか用意しておくものがあります。1つは「web.xml」へのサーブレットの登録、もう1つはDWRの設定を行う「dwr.xml」ファイルの作成です。では、まずweb.xmlの修正から行いましょう。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>dwrweb</display-name>
<servlet>
<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>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
また、ここではdebug情報のためのタグも用意されていますが、これは実際の開発の場合には、完成後に削除されるものと考えてください。
Eclipse WTPでプロジェクトを作る
では、DWRを実際に利用してみることにしましょう。DWRでは、JavaBeanクラスを作成し、それをdwr.xmlに登録し、HTMLのJavaScriptスクリプトから呼び出す――といった利用の仕方をします。まずは、ごく簡単な利用例として、Javaのクラスライブラリにあるクラスをdwr.xmlに登録して呼び出してみましょう。
<ファイル><新規><その他>メニューを選び、「XML」項目内の「XML」を選択してXMLファイルを作成しましょう。保存場所はWebContent/WEB-INF内に、ファイル名は「dwr.xml」とします。また「次からXMLファイルを作成」では「XMLテンプレートからXMLファイルを作成」を選び、「xml装飾」のテンプレートを使ってファイルを作成してください。
作成されたdwr.xmlに、以下のように追記をしてください。これで、java.util.GregorianCalendarクラスがDWRに登録されます。
<?xml version="1.0" encoding="UTF-8"?>
<!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="JavaDate">
<param name="class" value="java.util.GregorianCalendar" />
</create>
</allow>
</dwr>
dwr.xmlは、<!DOCTYPE>でDWRのためのDTDを指定し、それから<dwr>タグに必要な情報を記述していきます。Javaのクラスを利用する場合には、<allow>タグ内に、以下のような形で使用クラスの情報を記述します。
<create creator="new" javascript="オブジェクト名">
<param name="class" value="クラスの指定" />
</create>
これで、<param name="class">に指定したJavaのクラスが、<create>のjavascriptで指定した名前でJavaScriptから利用できるようになります。DWRは、このようにしてJavaのクラスをJavaScriptのオブジェクトとして登録していきます。