エンタープライズ:特集 2003/08/01 12:50:00 更新


特集:第3回:WebSphereでサーブレットとJSP開発を始める (3/6)

J2EEプログラミングとMVCモデル

 J2EEアプリケーションの多くは「MVCモデル」と呼ぶ形式で作られる。これを簡単に解説しておこう。ユーザーインタフェースを持つアプリケーション(人間と対話するということ)は、少なくとも以下の事項を行う必要性がある。

1. 操作用の説明や部品を表示する

2. 人間の操作を理解する

3. それに対してなんらかの処理を行う

4. 処理結果を表示する

5. 場合によっては、次の操作用の説明や部品を表示する

 Webアプリケーションの場合、表示部はHTML言語タグを利用して描画、それ以外の部分がJava言語で描画される(DHTMLという技術では、JavaScriptも使われる)。HTMLとJavaはまったく異なる技術のため、それぞれの人員が担当する場合が多い。例えばデザイナーとプログラマといった具合だ。このため、チームを組んで開発する場合、ソースコードが明確に分離できたほうが都合がよいのだ。

 「MVCモデル」とは、このようなユーザーインタフェースを持つアプリケーションを「モデル」、「ビュー」、「コントローラー」という3つに分けて開発するという概念だ。J2EEでは、以下のように分けることが多い。

1. モデル(処理部):Java BeanやEnterprise Bean

2. ビュー(表示部):JSP

3. コントローラー(入力制御部):Java Servlet

 WebSphereではさまざまな形態のWebアプリケーション開発を、ウィザードを使って支援する機能があるが、この「MVCモデル」が多用されている。

JavaBeanの準備〜クラス追加から処理の記述〜

 それでは最初に処理プログラム(モデルにあたる)を作ってみよう。処理部分は、通常データベースやEJBのようなコンポーネントなどにアクセスして処理を行うのが一般的だ。しかし、ここではデータベース処理を前提としない例のため、以下のようなJavaプログラムが処理を行うと前提する(ページの都合上、コメントは削除)。

 クラスをWebアプリケーション上に追加しよう。追加する個所は、Webプロジェクトの「Java Source」フォルダ下だ。まず右クリックをしてパッケージ「yone」を追加し、さらにそれを右クリック後に「Javaクラス」として「EmpData」と「EmpList」で追加する。追加されたJavaコードは、「Javaエディタ」で表示されるので、これらのソースを記述する。慣れてくると、パースペクティブごとに追加できるファイルの種類が異なり、追加用のボタンがツールバーに表示されていることに気づくだろう。これらをうまく活用すると、さらに作業効率がアップする。

リスト■EmpData.java
package yone;
public class EmpData {
   String empno;  // 社員番号
   String name;   // 名前
   int age;       // 年齢
   public EmpData(String no, String na, int a) {
      empno = no;
      name = na;
      age = a;
   }
   public int getAge() {
      return age;
   }
   public String getEmpno() {
      return empno;
   }
   public String getName() {
      return name;
   }
   public void setAge(int age) {
      this.age = age;
   }
   public void setEmpno(String empno) {
      this.empno = empno;
   }
   public void setName(String name) {
      this.name = name;
   }
}
リスト2■EmpList.java
package yone;
public class EmpList {
   private EmpData[] array =
      {
         new EmpData("001", "山田太郎", 36),
         new EmpData("002", "高橋花子", 24),
         new EmpData("003", "矢釜椎名", 23),
         new EmpData("004", "小田真理", 25)};
   // すべての社員一覧を取得
   public EmpData[] getEmployees(String key) {
      if(key==null) {
         return array;
      }
      boolean[] match = new boolean[array.length];
      int count = 0;
      for(int i=0; i

 ここでの社員を表現するクラスは、「EmpData」と、それを管理する「EmpList」クラスだ。「EmpList」クラスには、すべての社員リストを取得する「getEmployess」メソッドと、特定の社員情報を取得する「getEmployee」メソッドがある。このほかに範囲で取得したり、キーワードで取得、更新を行うメソッドも作られるので、余裕がある人は自由に試してもらいたい。

前のページ | 1 2 3 4 5 6 | 次のページ

[米持幸寿,ITmedia]