2010年11月30日火曜日

GWTでサーバーに直接アクセスする ~Requestbuilderを利用する~

GWTでサーバと通信する場合はGWT-RPCを利用するのがスタイリッシュですが、サーバ内にあるコンテンツやサーブレットにアクセスしたいというときがあります。その際は、Requestbuilderを利用します。使い方は以下のとおり。
@UiHandler("btnSubmit")
    void onClick(ClickEvent e) {
        try {
            final String url = "/test.txt";
            final RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.GET, url);
            requestBuilder.sendRequest("GET", new RequestCallback() {

                @Override
                public void onError(Request request, Throwable exception) {
                    Window.alert("ファイルの読み込みに失敗しました");
                }

                @Override
                public void onResponseReceived(Request request, Response response) {
                    Window.alert("読み込みました" + response.getText());
                }
            });
        } catch (RequestException ex) {
            //エラー処理をここで書く
        }
    }
このサンプルは、ボタンを押したときにサーバ内にあるファイルtest.txtにアクセスしています。アクセスに成功すると、onResponseReceivedメソッドが起きますのでそこで、処理をします。受け取ったデータは引数のResponseクラスに入ってます。なお、GWTはJavaScriptと同じ制約を受けますので、外部のサーバに対してこのようなアクセスをすることは無理です。

0 件のコメント:

コメントを投稿