これまでは、GWTアプリケーションの画面表示に関することを中心に紹介してきたが、今回と次回は、サーバと通信してAjaxアプリケーションを構築する方法を紹介しよう。
今回は、JSON形式のテキストデータをサーバから受信してみたい。Ajaxという名前は、当初はWebブラウザ上でXMLデータを送受信することを指していたのだが、最近は、はじめからJSON形式でデータをやり取りするAPIを公開する動きも見られ、JSONはXMLと並んでAjaxで利用されるデータ形式としての認識が広まっている。
Ajaxを実現するAPI
テキストデータをサーバから受信する際に重要な役割を果たすのが、HTTPRequestクラスとResponseTextHandlerインタフェースだ。
HTTPRequestは、Webブラウザからサーバに対してHTTPプロトコルによるリクエストを送信するもので、GET/POSTそれぞれのメソッドに対応したasyncGet/asyncPostというメソッドを持つ。引数でユーザー名とパスワードを指定すれば、認証が必要なサーバとのやり取りも可能だ。
ResponseTextHandlerは、HTTPRequestによるサーバへのリクエストの後、レスポンスとして受信したデータを処理するonCompletionメソッドを持つ。開発者は、引数として渡されたレスポンスデータを形式にしたがって解析し、必要なデータを抽出する処理をこのメソッドに記述する。
なお、これらのAPIを用いるには、モジュール定義(*.gwt.xmlファイル)の<module>~</module>内に以下の定義を追加しておかなくてはならないので注意していただきたい。
では、英単語テストアプリケーションを例に、アプリケーション内で利用する方法を紹介しよう。