![]() | ![]() |
|
11.6.オリジナルのクラスを使う
11.6.1.オリジナルクラスの使用方法 11.6.2.JavaBeanを使ってみる | ||
![]() | ![]() |
![]() | ![]() |
|||||||||||||||||||||||||
11.6.オリジナルのクラスを使う
11.6.1.オリジナルクラスの使用方法
入力が終わったら、これを「javac」コマンドでコンパイルして「class」ファイルを得ましょう。ここからがすこし重要です、取得したclassファイルを今まで作っただけで何もいれてなかった「%Tomcat%\webapps\ex\WEB-INF\classes\」ディレクトリ以下におきます。 ただし、パッケージを作成しましたので、今回は 「%Tomcat%\webapps\ex\WEB-INF\classes\myclass」 にコピーしてください。 こうすることによって、パッケージ名とクラス名をJSPの中で指定することによってオリジナルのクラスが使用できるようになります。たとえば次のような形なります。
このJSPの11行目でオリジナルのクラスDayWeekのオブジェクトを生成しています。このようにして、「%Tomcat%\webapps\ex\WEB-INF\classes\」ディレクトリはオリジナルのクラスを利用する場合に使用します。それでは確認のためにJSPを動作させてみましょう。今回もパラメータ「date」が必要ですので「http://localhost:8080/ex/ex11_6_1.jsp?date=2002/08/12」のようにアドレスを入力してください。 このように、オリジナルのクラスによって処理された結果を使用することができました。このようにしてclassにしてしまえばあとはJavaのアプリケーションの製作と同じですのでJSPは大変便利なことがわかります。
11.6.2.JavaBeanを使ってみる
このクラスはもうみなさんなら、当然理解できると思いますが、プライベートなクラス変数countがあり、それに値を設定するsetCountと値を取得するgetCountメソッドを持ちます。 これを使用するためには「javac」コマンドでコンパイルして 「%Tomcat%\webapps\ex\WEB-INF\classes\myclass\」 においてください。 このクラスを用いてJSPで訪問者をカウントするカウンタを作ってみたいと思います。Beanを使用するには下のようにします。
JSPの中からJavaBeanを使用するにはまず「<jsp:usrBean>」をつかってBeanをJSPで使用できるように宣言する必要があります。 ・属性「id」はJSPの中で使用するBeanの名前を指定します。 名前の規則はありませんので任意のもので結構です。 ・属性「class」はBeanのクラスを指定します。今回はmyclassパッケージのCounterBeanを指定してあります。ここで指定するクラスは「%Tomcat%\webapps\ex\WEB-INF\classes\」など、Webアプリケーションの「WEB-INF」内のclassesディレクトリ以下に置くことが決められています。 以上の二つの属性を最低限指定してやることでJSPの中からは「id」で指定した名前でBeanが使用できるようになります。 Beanを実際に使用するには「<jsp:setProperty>」と「<jsp:getProperty>」を用います。 Beanに対して値を設定するには上の4行目のように<jsp:setProperty>」に以下の属性を与えて呼び出します。 ・属性「name」は「<jsp:useBean>」で指定した「id」名を指定します。 ・属性「property」はBeanの中のどの変数に値を設定するかを指定します。 ・属性「value」は設定する値を指定します。 今回の場合の「<jsp:setProperty name="count" property="count" value="123" />」は通常のプログラムから「CounterBean.setCount(123)」とすることと同じ意味になります。 逆にBeanから値を取得するには「<jsp:getProperty name="count" property="count" />」となります。これも先ほどの設定の場合と同じで通常のプログラムから「CounterBean.getCount()」とすることと同じ意味になります。 実際にこれを実行してみると下図のようになります。 ![]() 実行してみると、カウントがあがっていかないことがわかると思います。これはBeanがクライアントのリクエストのたびに消滅してしまっているからです。 | ||||||||||||||||||||||||||
![]() | ![]() |
![]() | ![]() |
|
このドキュメントの間違い・誤字・脱字を発見された方は筆者までご連絡をいただけるとうれしいです。 また、私のわかる範囲でご質問にも答えようと思います。ご質問や疑問点がある方は気楽にメールをください。 | ||
![]() | ![]() |