エンタープライズ:特集 | 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.javapackage 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; } } |
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」メソッドがある。このほかに範囲で取得したり、キーワードで取得、更新を行うメソッドも作られるので、余裕がある人は自由に試してもらいたい。
[米持幸寿,ITmedia]