2003年度 データベース論

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