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ファイル
保存場所: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(■をコードに置き換えます)
(実行結果)