プログラム

(秘)JavaServlet技法

初心者から上級者まで。Java言語によるプログラミングの真髄をレクチャーします。Webシステム開発のエキスパート「株式会社 慶」が発行。

全て表示する >

(秘)JavaServlet技法

2004/10/25

*************************************************************************
_/_/_/_/_/_/_/_/_/_/_/_/_/  (秘)JavaServlet技法  _/_/_/_/_/_/_/_/_/_/_/_/
*************************************************************************
第115号  2004/10/25 発行現在の購読者数:4394
  ▼  Servlet技法:第115回
  ▼  コラム
  ▼  次回予告
  ▼  編集後記
  ▼  編集長からのお知らせ

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  Servlet技法:第115回
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
前回の続きです。今回はJSPによるBeanの利用です。


↓前回までの記事はこちら↓
http://www.kei-ha.co.jp/mag.html


↓ご意見・ご質問はこちらから↓
mag@kei-ha.co.jp


◆JSPによるBeanの利用

JSPではBeanオブジェクトを利用するためのタグが用意されています。


○「<jsp:useBean>」アクション

このタグにより指定のクラスのオブジェクトが利用するためのタグが
用意されています。


<jsp:useBean id = "オブジェクト名" class = "クラス名" scope =
"オブジェクトの有効範囲" />


または


<jsp:useBean id = "オブジェクト名" class = "クラス名" scope =
"オブジェクトの有効範囲" />

beanに関する処理

</jsp:useBean>


各属性には以下のような値を与えます。

・id  …  オブジェクト名を与える。このタグ以降JSPに埋め込まれた
          Javaのコード中でインスタンス化されたオブジェクトとして
          利用できる。

・scope  …  以下のいずれかを書く。
             page         …  このページ中のみ参照できる。デフォルト。
             request      …  このリクエストの処理の間参照できる。従って
                              このページのみならずincludeされたページの
                              中でも参照できる。
             session      …  セッションが継続する間参照できる。
                              セッションにこの「id」のオブジェクトが
                              存在した場合改めてインスタンス化せずに
                              同じものを参照する。セッションにバインド
                              されていない場合には、新しくインスタンス化
                              する。
             application  …  アプリケーションが継続してる間参照できる。
                              セッションを超えて他のサーブレットやJSPから
                              同一のオブジェクトが参照できる。

・class  …  オブジェクトのクラスを指定する。


○「<jsp:setProperty>」アクション

Beanのセッタメソッドを呼びだしてフィールドに値を設定するタグです。

<jsp:setProperty name = "オブジェクト名" property = "フィールド名"
value = "値"/>


または


<jsp:setProperty name = "オブジェクト名" property = "フィールド名"
param = "パラメータ名"/>


フィールドに設定する値を直接書く場合は前者を使います。
フォームを持つJSPやHTMLから呼び出されパラメータを伴う場合には
後者を使います。つまり後者は

getParameter("パラメータ名") ;


○「<jsp:getProperty>」アクション

Beanのゲッタメソッドを呼び出してフィールドに設定されている
値を取得するタグです。構文は以下の通りです。

<jsp:getProperty name = "オブジェクト名" property = "フィールド名"/>


それでは前回までのサンプルと今回のサンプルを併せて動かしてみましょう!


113回目のサンプル  MyDate.java
114回目のサンプル  UserInformation.java
今回のサンプル     beansTest.jsp
                   includeTest.jsp
                   indexTest.html
を使います。

まず以下のようにフォルダを構成します。

C:\javasrc\yoyaku
              |
               ̄jsp
                WEB-INF
                   |
                    ̄classes
                        |
                         ̄yoyakuBeans

MyDate.java、UserInformation.javaはyoyakuBeansフォルダにに保存します。
beansTest.jsp、includeTest.jspはjspフォルダの保存します。
indexTest.htmlはyoyakuフォルダに保存します。

★サンプル

(beansTest.java)

<%@ page language="java" contentType="text/html; charset=shift_jis"
                                           import = "yoyakuBeans.*"%>
<html>
<head>
<title>Beansのテスト</title>
</head>
<body>
日付(MyDateクラス)のテスト<br>

<jsp:useBean id = "now" class = "yoyakuBeans.MyDate" scope = "request" />

今日は<%= now.toDispFormat() %><br>

<%
  now.moveDate(1) ;     //明日
%>
明日は<%=now.toDispFormat()%><br>


<%
  now.moveDate(7) ;     //来週
%>

その来週は<%=now.toDispFormat()%><br>

<%
  now.moveDate(-7) ;        //来週
%>
その先週は<%=now.toDispFormat()%><br>

<%
  now.moveDate(-1) ;        //明日
%>
その昨日は<%=now.toDispFormat()%><br>
今日に戻ってきました<br>

<%
  now.moveDate(-1) ;        //明日
%>
そのまた昨日は<%=now.toDispFormat()%><br>

<P>
<jsp:useBean id = "user" class = "yoyakuBeans.UserInformation" scope = "session" >
  <jsp:setProperty name = "user" property = "userID" param = "userID"/>
  <jsp:setProperty name = "user" property = "password" value = "YOYAKU"/>
  <jsp:setProperty name = "user" property = "email" param = "email"/>
</jsp:useBean>
<%
  user.setDate(now) ;
  user.setUserID(new String(user.getUserID().getBytes("iso-8859-1"),"JISAutoDetect")) ;
%>

ユーザ情報(UserInformationクラス)の確認<br>
ID:<jsp:getProperty name = "user" property = "userID"/><br>
password:<%=user.getPassword()%><br>
E-mail:<%=user.getEmail()%><br>
日付:<%=user.getDate().toDispFormat()%><br>
<jsp:include page = "includeTest.jsp" flush="true" />
</body>
</html>



★サンプル

(includeTest.java)

<%@ page language = "java" contentType = "text/html; charset=shift_jis"
                        import = "yoyakuBeans.*"%>
<html>
<head>
<title>Beansのテスト</title>
</head>
<body>
ここからincludeTest.jspによる表示<br>

<jsp:userBean id = "now" class = "yoyakuBeans.MyDate" scope = "request" />

今日は<%=now.toDispFormat()%><br>

</body>
</html>

★サンプル

(indexTest.html)

<html>
<head>
<title>自動会議室予約システム</title>
</head>
<body>
<h1>自動会議室予約システム</h1>
あなたのIDとパスワード E-mailを入力してログインしてください
<form action = "jsp/beansTest.jsp" method = "post">
<br>
<table border = 0>
    <tr><td>ID:</td><td><input type = "text" name = "userID"</td><tr>
    <tr><td>パスワード:</td><td><input type = "password" name = "password"</td><tr>
    <tr><td>E-mail:</td><td><input type = "text" name = "email"</td><tr>
</table>
<input type = "submit" name = "login" value = "ログイン">
</form>
</body>
</html>

それでは、出来たサーブレットはコンパイルしてTomcatを起動します。
そして以下のURLを指定します。

http://localhost:8080/yoyaku/indexTest.html

結果はどうでしょうか?
うまくできない場合はBeanとJSPのファイル名の指定や、オブジェクト名、
パラメータ名の大文字、小文字の違い等を確かめてみてください。

ちなみにログインパスワードはYOYAKUです。

                                モリモリ
----☆PR☆---------------------------------------------------------------
  オブジェクト指向を勉強したい!,Javaを勉強したい!
  メールマガジン『JavaScript&Javaで目指そう!基本情報技術者試験』
を購読してますか?  (無料)執筆は,宿題メールでおなじみの斎藤末広
  登録  http://www.mag2.com/m/0000066251.htm
  詳細  http://www.3721p.com/java/jmaga/
---------------------------------------------------------------☆PR☆---
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  コラム
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

JUnit

JUnitは、Javaプログラム単体テスト用のフレームワークです。
開発メンバが共通のテストフレームワークをもつことで、
他人のテストプログラムの修正を容易にします。

また、JUnitはJavaでの開発に慣れた人なら、
自然に受け入れられるように設計されています。
テストプログラムを記述するために、
たくさんの知識を習得する必要はありません。

ちなみに、オープンソースですので下記で入手してください。
http://www.junit.org/index.htm

テストしたいクラスを使いテストプログラムを書き、
そのテストプログラムをJUnitの上で実行すれば、
テストが成功したかどうかを表示してくれます。

                                直角
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  次回予告
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  □  Servlet技法:116回
  □  コラム
  □  次回予告
  □  編集後記
  □  編集長からのお知らせ
      次号は、11月1日発行予定です。乞うご期待!!
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  編集後記
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
みなさま、こんにちは

中越の地震、すごいですね。
付近に住んでいらっしゃる方、大丈夫でしょうか。

私の友人が震源地付近に住んでおりまして、
ケータイで写真を送ってきたのですが、
タンスやらテレビやらが倒れ、壁にヒビが入ってました。

地震の怖さを知りましたね…。
食糧不足でもあるそうですし、
ボランティアに行きたいですが
そうもいかず歯がゆい限りです…。

中越にお住まいの方、
月並みですが、頑張ってください!

                               ゆーいち
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
              *  *  *  編集長からのお知らせ  *  *  *
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
◆━◇ PR ◇━◆
□■□-------------------------------------------------------------------
■◇■モバイルコマースなら「K-CODE」http://kcode.jp/kcode/index.html
□■□-------------------------------------------------------------------

  ┏━━━━━━━━━━━━┓
  ┃携帯メルマガサイト誕生!┃
  ┗━━━━━━━━━━━━┛
  ☆☆☆お気楽"無料"マガジンサイト『プッチマガ』☆☆☆
  登録も配信もラクラク♪3分でメルマガ配信できちゃう!

  ●●●今週のオススメ『プッチマガ』●●●
  真のSEに贈る、品質管理のノウハウ集
  【品質の番人】!これまで誰も書かなかった
  「システムの品質を実現する方法」を具体的に伝授します。
  登録はもちろん無料!毎週火曜日発行です。

  ↓メルマガ購読&登録はコチラ
  http://kcode.jp/pmag/index.html 提供:株式会社慶
-------------------------------------------------------------------------
  ┏━━━━━━━━━━━━━┓
  ┃あなたのソースを再チェック┃
  ┗━━━━━━━━━━━━━┛
  ☆KSCCでJava、HTML、SQL等々ソースコードを総チェック!☆
  ・性能劣化の原因となるロジックの自動検出機能
  ・プログラムのステップ数計測(Javaは実ステップ数も)
  etc。。他にも機能満載!↓無料お試し&ご注文はコチラ
  ☆近々バージョンアップ予定!☆
  http://kcode.jp/shop/ks 提供:株式会社慶
-------------------------------------------------------------------------
  ┏━━━━━━━━━━━┓
  ┃ソフトウェア業界航海術┃
  ┗━━━━━━━━━━━┛
  ソフトウェア業界の本質をまとめました
  「皆に読ませちゃいました」(某中小ソフトウェア会社社長)
  「こういう視点で書かれた本は他にない。」(某フリーSE)
 「バイブル的存在の位置付けとし、業務に対する考え方(自覚)を、
  社員にも広めて行ければと考えております。」(某大手ソフトウェア会社課長)
   http://kcode.jp/shop/ks 提供:株式会社慶
-------------------------------------------------------------------------
  ┏━━━━━━━━━━━━┓
  ┃航空ファン要チェック!!┃
  ┗━━━━━━━━━━━━┛
  ♪♪♪航空祭でも出店中!♪♪♪
  新作続々登場!ダイキャストモデルも完成しました!
  T-シャツからお子様用飛行服まで豊富な品揃え!
  一度遊びにきて下さいね♪
   http://kcode.jp/shop/bluemax 提供:BlueMax
-------------------------------------------------------------------------
  ┏━━━━━━━━━━━━━┓
  ┃   (秘)Linuxサーバ      ┃
  ┗━━━━━━━━━━━━━┛
  ☆☆新メールマガジン「(秘)Linuxサーバ」☆☆

    Linux初心者が「Linuxとは何なのか」というところから、
    どのようにしてLinuxサーバを構築していけば良いのか
    といったところまで幅広い分野を扱っていくメールマガジンです。
    Linuxに興味をお持ちの方は、ぜひご購読ください。

    ↓ご登録はこちらから↓
    http://www.kei-ha.co.jp/magmenu.html  提供:株式会社慶
-------------------------------------------------------------------------
  ┏━━━━━━━━━━━━━┓
  ┃  (秘)データベース構築術  ┃
  ┗━━━━━━━━━━━━━┛
  ☆☆新メールマガジン「(秘)データベース構築術」☆☆

「DBをやってみたいけど〜」と思っていた方、今回を機に登録してみてください。
気づいたらDBを構成できるようになっているはずです。

http://www.kei-ha.co.jp/magdb.html  提供:株式会社慶
-------------------------------------------------------------------------
   ┏━━━━━━━━━━━━━┓
   ┃ソフトウェア業界 新航海術┃
   ┗━━━━━━━━━━━━━┛
 ☆☆メールマガジン「ソフトウェア業界 新航海術」☆☆
 中小ソフトウェア会社経営者のみならず技術者、管理職必見のメルマガです!!
 技術と経営(財務、法務、人事)の両面で会社と従業員が現実に直面している
 切実な問題の本質を明らかにし、解答を与えます。
 今すぐ→ http://kei-it.com/sailing/  提供:株式会社慶
-------------------------------------------------------------------------
∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞

                  このメールマガジンは、

                  まぐまぐ
                  http://www.mag2.com/

                  melma!
                  http://www.melma.com/

                  Macky
                  http://macky.nifty.com/index.htm

                  カプライト
                  http://kapu.biglobe.ne.jp/index.html

                  を利用して発行しています。

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
        「(秘)JavaServlet技法」は株式会社慶が発行しています。
                  http://www.kei-ha.co.jp/mag.html
             ご意見・ご質問等はこちら→mag@kei-ha.co.jp
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

規約に同意してこのメルマガに登録/解除する

メルマガ情報

創刊日:2001-10-02  
最終発行日:  
発行周期:毎週月曜発行  
Score!: - 点   

コメント一覧コメントを書く

この記事にコメントを書く

上の画像で表示されている文字を半角英数で入力してください。

※コメントの内容はこのページに公開されます。発行者さんだけが閲覧できるものではありません。 コメントの投稿時は投稿者規約への同意が必要です。

  • コメントはありません。