TOPシステム開発> サーバサイドのプログラム
マスカット
リッチクライアントを加速させるAjax開発環境「マスカット」の全貌

第5回:実践!マスカットアプリケーションのサーバサイド作成
著者:NTTデータ  川田 洋平   2007/2/23
前のページ  1  2  3   4  次のページ
サーバサイドのプログラム

   第1回でも説明した通り、マスカットはクライアント側のアプリケーションを構築するためのフレームワークであり、サーバアーキテクチャに依存しません。よって、JavaEEであろうとPHPであろうとも、これまで述べた処理を行うサーバサイドであればどのようなアーキテクチャでも構築することができます。

   今回はJavaEEでサーバサイドを構築する例を示します。なおサーバサイドについてはマスカットの範囲外ですので、ここでは参考としてプログラムソースを提示するだけに留めさせていただきます。サーブレットプログラム(MaskatHotelServlet.java:データとすべての処理を1つのファイルにまとめた簡易版ソース)とweb.xmlは、以下よりダウンロードすることができます。
プログラムソース
MaskatHotelServlet.java (2.59KB)
web.xml (205Byte)


動作確認

   以上でホテル検索アプリケーション一式の準備は整いました。

   それでは動作確認をしてみましょう。以下に最終的なディレクトリ構成図を示します。

<Tomcatディレクトリ>
┣ bin
┣ ...
┣ webapps
... ┣ maskat
   ... ┣ contents
       ┃┣ hotelSearch.xml
       ┃┣ hotelSearch_e.xml
       ┃┣ hotelSearch.html
       ┃...
       ┣ maskatFW
       ┣ maskatIDE
       ┣ WEB-INF
       ┃┣ web.xml
       ┃┗ classes
       ┃  ┗ org
       ┃    ┗ maskathotel
       ┃      ┣ MaskatHotelServlet.class
       ┃      ┗ HotelData.class
       ┣ changelog.txt
       ...

   赤字が本連載を通じて作成したファイルです。なお、MaskatHotelServlet.classとHotelData.classの2つのファイルはMaskatHotelServlet.javaをコンパイルした際にできるクラスファイルです。

   Tomcatを起動し、Webブラウザでホテル検索アプリケーションのURLにアクセスしてください。画面が表示され、検索実行と一覧選択による詳細表示ができれば成功です。なお、サンプルデータの都合上、宿泊日は01/01/2007、02/01/2007、03/01/2007、04/01/2007のいずれかを選択してください。

ホテル検索アプリケーション・動作確認
図3:ホテル検索アプリケーション・動作確認
(画像をクリックすると別ウィンドウに拡大図を表示します)

   いかがでしたでしょうか。これまででホテル検索アプリケーションを一通り作成してきましたが、ここで今一度注目してほしいことがあります。それはホテル検索アプリケーションを作る上で「JavaScriptを一切記述しなかった」ということです。マスカットを利用すれば、JavaScriptを記述せず、IDE上でホテル検索アプリケーションのようなリッチクライアントが簡単に作成できるのです。


マスカットアプリケーションの拡張

   実際のシステムを構築する場合、細かい機能拡張などカスタマイズが必要になるケースがあるかもしれません。そのような場合、JavaScriptを使わずにXMLだけで実現するというのが非現実的な場合もあるでしょう。

   マスカットではJavaScriptを用いて細かな機能拡張ができるように様々な拡張ポイントを用意しています。以降では通信時の拡張ポイントを利用してホテル検索アプリケーションを機能拡張する例を紹介します。


送受信メッセージXMLのカスタマイズ

   マスカットでは、送信メッセージXMLを送信する直前、受信メッセージXMLを受信した直後にそれぞれ指定したJavaScript関数を実行することが可能です。そしてその関数の引数としてそれぞれ送信メッセージXML、受信メッセージXMLを渡すことができ、それによりXMLの内容を参照・修正することができます。

   ここではホテル検索アプリケーションの検索実行イベント時に、送信メッセージXMLと受信メッセージXMLの内容をダイアログボックスで表示するように拡張してみます。

   レイアウト定義XML(hotelSearch.xml)を以下のように修正します。修正箇所は赤太字で示しています。


(画像をクリックすると別ウィンドウに拡大図を表示します)

   修正後のイベント定義XML(hotelSearch_e.xml)を以下のように修正します。修正箇所は赤太字で示しています。


(画像をクリックすると別ウィンドウに拡大図を表示します)

   以上の修正で、実行時に以下のように送受信メッセージXMLの内容を確認することができます。

送信メッセージXML
図4:送信メッセージXML
(画像をクリックすると別ウィンドウに拡大図を表示します)

受信メッセージXML
図5:受信メッセージXML
(画像をクリックすると別ウィンドウに拡大図を表示します)

前のページ  1  2  3   4  次のページ


株式会社NTTデータ 川田 洋平 技術開発本部 ソフトウェア工学推進センタ エキスパート
著者プロフィール
株式会社NTTデータ 川田 洋平
技術開発本部 ソフトウェア工学推進センタ エキスパート

同社の研究開発部門にてWebシステムの研究開発に従事。マスカットの開発には初期から携わり、オープンソース化後はマスカットプロジェクトのプロジェクト運営委員会(PMC)およびコミッタとして活動を続けている。


INDEX
第5回:実践!マスカットアプリケーションのサーバサイド作成
  サーバサイドの作成
  一覧選択イベント
サーバサイドのプログラム
  イベント発生時のカスタマイズ