| エンタープライズ:特集 | 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;
}
}
|
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]
