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