2003年度 データベース論

JavaBeans とJSP
J2EE I
第8回 / 2005-01-15
1
ここでの内容


JavaBeans の概要を知る。特に、「プロパ
ティ」について理解する。
JSP から JavaBeans を使う方法について
知る。
2
コンポーネント技法

オブジェクト指向プログラミング言語



Java, C++, Ruby など
オブジェクトを組み合わせてプログラムを作る
コンポーネント技法

再利用可能なオブジェクトを組み合わせてプ
ログラムを作る技法。
3
JavaBeans とは何か




Javaによるコンポーネント技法
いくつかのルールのもとに作られた Java
のクラス
だから、取り扱いやすい
JavaBeans の例



GUI
表計算
本のデータと関連する処理
4
JavaBeans のルール



直列化
引数無しのコンストラクタ
プロパティ
5
JavaBeansのルール (1)
直列化

必要に応じて、インスタンスをバイト列に変換で
きるようにする。


インスタンスをファイルに保存する
インスタンスをネットワークで転送する
public class HogeBean implements Serializable {
……
……
}
6
JavaBeansのルール (2)
引数無しのコンストラクタ

引数無しのコンストラクタ (= デフォルト・コンスト
ラクタ) を用意する。
public class HogeBean implements Serializable {
public HogeBean() {
……
}
……
}
7
JavaBeansのルール (3)
プロパティ


Bean の持つ「属性」のこと
本をあらわす Bean であれば、次のものが
プロパティ




タイトル
著者
出版社
など
8
「本」を表す Bean
public class Book implements Serializable {
private String title;
public Book() { …..}
public String getTitle() { return title;}
public void setTitle(String t) { title = t; }
……
}
9
メソッドのネーミングルールと
プロパティ

title というプロパティがある



setTitle() や getTitle() というメソッドがあ
る


setTitle() や getTitle() というメソッドがある。
title というフィールドがあることを意味しない。
title というプロパティがある。
メソッドがあるから、プロパティが存在する
10
setter と getter

setter --> setTitle()



getter --> getTitle()



setTitle() というスタイルのメソッド
プロパティに値をセットできる
getTitle() というスタイルのメソッド
プロパティの値を得ることができる
どちらかが存在するだけでプロパティになりうる
11
setter と getter とプロパティ


setter
getter
プロパティ
setTitle()
getTitle()
title
setter と getter では、先頭が大文字にな
る
プロパティ名では、先頭が小文字
12
JSP から JavaBeans を
呼び出す

JSPで3つのタグを使う




<jsp:useBean ….. />
<jsp:getProperty ….. />
<jsp:setProperty ….. />
タグだけで書けるので、スクリプトレットの
量を減らせる。
13
<jsp:useBean ….. />
<jsp:useBean
id="today“
scope="page"
class="jp.ac.wakhok.tomoharu.Today" />




Bean のインスタンスを作る
id は Bean の名前
scope は Bean の寿命
class は Bean のクラス名 (パッケージ名から)
14
scope について


Bean の寿命を示す
4つの scope




page
request
要求から応答の間
要求から応答の間 (コンテナ内
でデータのやり取りはできる)
session
セッションが有効である間
application Webアプリケーションが
動いている間
15
<jsp:getProperty ….. />
<jsp:getProperty
name="today" property="year“ />

today と名づけられた Bean の year プロ
パティを出力する。
16
<jsp:setProperty ….. />
<jsp:setProperty
name="mybean“ property="username"
value="maruyama" />

mybean と名づけられた Bean の
username プロパティに “maruyama” を
セットする。
17
Tomcat への配置



Bean は WEB-INF/classes に配置する。
Bean は パッケージに含まれている必要がある。
Jarファイルにまとめて WEB-INF/lib に配置してもよい。
test/ ---|
|-- WEB-INF/ --- web.xml
|
|- classes/
|
|- lib/
|-- loop.jsp




必須
クラスファイル
使用するライブラリ
JSP
18
クラスファイルの配置と
パッケージ名


Bean のパッケージ名に合わせてフォルダを作り、
その中に Bean を配置する。
WEB-INF/classes/jp/ac/wakhok/tomoharu に
Today.class を配置する。
package jp.ac.wakhok.tomoharu;
public class Today implements Serializable {
……
19