JavaBeans とJSP データベース論 第5回
この講義に関するWebページ http://www.wakhok.ac.jp/~tomoharu/db2003/
きょうの内容 JavaBeans の概要を知る。特に、「プロパティ」について理解する。 JSP から JavaBeans を使う方法について知る。
コンポーネント技法 オブジェクト指向プログラミング言語 コンポーネント技法 Java, C++, Ruby など オブジェクトを組み合わせてプログラムを作る コンポーネント技法 再利用可能なオブジェクトを組み合わせてプログラムを作る技法。
JavaBeans とは何か Javaによるコンポーネント技法 いくつかのルールのもとに作られた Javaのクラス だから、取り扱いやすい GUI 表計算 本のデータと関連する処理
JavaBeans のルール 永続化 引数無しのコンストラクタ プロパティ
JavaBeansのルール (1) 永続化 必要に応じて、Bean の内部状態を保存したり復元したりできるようにする。 public class HogeBean implements Serializable { ….. }
JavaBeansのルール (2) 引数無しのコンストラクタ 引数無しのコンストラクタ (= デフォルト・コンストラクタ) を用意する。 public class HogeBean implements Serializable { public HogeBean() { ….. }
JavaBeansのルール (3) プロパティ タイトル 著者 出版社 など
「本」を表す 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() というメソッドがある。 title というフィールドがあることを意味しない。 setTitle() や getTitle() というメソッドがある title というプロパティがある。 メソッドがあるから、プロパティが存在する
setter と getter setter getter どちらかが存在するだけでプロパティになりうる setTitle() というスタイルのメソッド プロパティに値をセットする getter getTitle() というスタイルのメソッド プロパティの値を得る どちらかが存在するだけでプロパティになりうる
setter と getter とプロパティ setter setTitle() Getter getTitle() プロパティ名では、先頭が小文字
JSP から JavaBeans を呼び出す JSPで3つのタグを使う タグだけで書けるので、スクリプトレットの量を減らせる。 <jsp:useBean ….. /> <jsp:getProperty ….. /> <jsp:setProperty ….. /> タグだけで書けるので、スクリプトレットの量を減らせる。
<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 ….. /> name="today" property="year“ /> today と名づけられた Bean の year プロパティを出力する。
<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 { …..