72-1.EclipseによるJSP・BeansのMVアーキテクチャ(シーザ暗号)

72-1.EclipseによるJSP・BeansのMVアーキテクチャ(シーザ暗号)

既にクラスが提供されている「シーザ暗号の変換Bean」をJSPから直接実体化するWebアプリケーションを作成します

これまでのBeanはコンストラクタ引数で値を設定してインスタンス化し、コンストラクタ内で業務ロジックを処理する仕様にしていました。

JSPから直接Beanを呼び出す場合、Javaの標準的なクラスの考え方に忠実に従っていないといけません。
つまりBeanは引数指定のコンストラクタで実体化することはできません。引数無しのデフォルトコンストラクタを使ってインスタンス化し、Setterメソッドで値を設定して業務ロジックのメソッドを起動し、結果をgetterメソッドで受け取ることになります。
この時privateで宣言されたクラス変数をプロパティと呼びset〇〇〇 get〇〇〇の〇〇〇はプロパティと名前が一致しなければなりません。

シーザ暗号の変換Beanは上記の仕様に忠実に従って作成されています。よってこのBeanはSPから直接実体化することが可能です。
以下、シーザ暗号の変換Beanのクラス図を再掲します。

(クラス図)
package:jp.ict.aso.model
--------------------------------------  //クラス名
CaesarBean                                
--------------------------------------  //フィールド(プロパティ)
- text:String                    //平文
- key:int                         //暗号化キー 
- encodeText:String         //暗号化文字列
- decodeText:String         //復号文字列
--------------------------------------  //メソッド
+ CaesarBean()                          //コンストラクタ
+ encode():void                          //ロジック
+ decode():void                          //ロジック
+ setText(text:String):void           //セッター
+ setKey(key:int):void                 //セッター
+ getEncodeText():String             //ゲッター
+ getDecodeText():String             //ゲッター
+ getText():String                       //ゲッター
+ getKey():int                            //ゲッター
--------------------------------------
- private
+ public


【プロジェクトの作成
新たにプロジェクトを作成しますプロジェクト名はcaesalとします。

【配置】←(済)
①クラスファイルの準備
提供BeanCaesarフォルダを事前にc:\などに作成しておきます(c:\提供BeanCaesar)。
提供BeanCaesarフォルダ内に上記のクラスファイル CaesarBean.class を保存しておきます。
その際パッケージの階層に従ってください。
c:\提供BeanCaesar\jp\ict\aso\model\CaesarBean.class

②提供されたBeanクラスをEclipseのビルドパスに追加します
プロジェクト→右クリック→ビルド・パス→ビルド・パスの構成→「ライブラリ」タブ
→「クラスパス」クリック→外部クラス・フォルダーの追加→「提供BeanCaesar」を指定します
→最後に「適用して閉じる」をクリック
 
※一度設定されていれば再度設定する必要はありません
※うまく読み込めない場合は一旦「提供BeanCaesarフォルダ」を除去してから再度追加します 



【実装】    

③実行用jspファイルを作成します
     caesarプロジェクトを右クリック→新規→その他→Web→JSPファイル
  • caesarTag.jsp
            保存場所:caesar/src/main/webapp/ ← ここに保存ですよ!
            ファイル名:caesarTag.jsp


            ソースコード:拡張タグを利用します■をタグに置き換えます



Webアプリケーションを実行します
JSPファイル(caesarTag.jsp)を実行します!!

※実行用Beanのデプロイ(配置)が必要です。この設定を行わないと実行時エラーになります。

④CaesarBean.classをEclipseのクラスパスに追加します
プロジェクトエクスプローラからbuildフォルダ以下のパッケージを展開します。
asoフォルダの位置で右クリック→新規→フォルダ→フォルダ名:model→完了
modelフォルダの位置へCaesarBean.classをドラッグ&ドロップします。

Eclipseを終了させると、再度追加が必要です。
※作成したはずのフォルダが表示されない、model位置に当該クラスが表示されないときはF5でリフレッシュしてください



⑤再度Webアプリケーションを実行します
JSPファイル(caesarTag.jsp)を実行します!!

(実行結果)


課題
JSPファイル内に直接Javaのコードを書いて実行できるようにJSPファイルを変更してください。

caesarTag.jspからcaesarCode.jspにコピーして変更します。
※実行はcaesarCode.jspです
ソースコードを提出してください(スクショで大丈夫!)

こんな感じです↓

caesarCode.jsp(■をコードに置き換えます


(実行結果)