JavaBeansは、「ほかのプログラムから再利用することを目的」に作成された(ということは、汎用的なビジネスロジックを実装した)クラスです。それ自体が「直接にクライアントから呼び出されることはない」という意味では、これまでにご紹介してきたJSPページやサーブレットクラスとは少々異質なものだといえます。JavaBeansは、JSPページまたはサーブレットクラスを介して呼び出され、その結果を呼び出し元に返します。
新しい技術が登場すると、多くの皆さんが「では、これによって、新しく何ができるようになるのか」という点に興味を持たれるかもしれません。しかし、第11回「JSPとサーブレットの違いを明らかにする」でもご紹介したサーブレットクラスと同様、JavaBeansはこれまでに学んできたことに対して、何か新しい機能を提供するというものでは「ありません」。恐らく本連載でこれから登場する機能のほとんどすべてが、新しい何かを可能にするというものでは「ない」はずです。
第11回でも述べたように、サーブレット/JSPを学ぶということは、ただ単に「手軽に、ある機能を実現する」ということだけではありません。もちろん、最終的な目的は何かしらの要件を達成することにあるわけですから、それが第1段階の学習の目的であるのは間違いありません。そして、これが第10回「クラスライブラリを攻略「データベース編」」までのテーマでした。
しかし、「ある一定以上の規模のアプリケーションを構築する場合には、ただ単に目の前のコーディングの手軽さだけではなく、アプリケーションに変更があった場合の保守性にも思いを至らせる必要がある」のです。これは今後、より実践的なアプリケーションを設計していく場合には、避けては通れない道です。機能の追加・改定、あるいは、サーバの移行などなど、さまざまな外的要件に対して「多大な改定工数が発生してしまう」、それによって「改定が思うに任せない」としたら、現実問題として、そのアプリケーションは「使えない」といわざるを得ません。
第11回以降の目的は、アプリケーションに対して日々発生する変更要件を「効率よくこなす仕組み」を、いかに簡単に作っていくかという点にあります。JavaBeansによるビジネスロジック部品化のプロセスは、その数あるアプローチの中の1つだと思っていただければよいでしょう。
JavaBeansを利用するアプリケーション
さて、それでは早速、具体的なJavaBeansを使ったアプリケーションを構築してみることにしましょう。冒頭で述べたように、JavaBeansはクライアントから直接に呼び出されるものではありません。JSP、またはサーブレット(もちろん、両方でも可能です)と組み合わせて利用しなければなりません。
ここで紹介するアプリケーションは、mail.htmlから入力された情報に基づいて、メールを送信し、送信結果を画面表示するためのものです。これまでは多くのサンプルが1つのファイルから構成されていましたが、ここでは4つのファイルが絡みあっていますので、まずは相互の関係を図示し、全体像を概観したうえで個々のコードを見てみることにしましょう。なお、以下の図1は第1回「サーブレット/JSPの役割を理解する」の図3と比較してみると、それぞれのファイルの役割がより明確に理解できるはずです。
各ファイルは、アプリケーションルート配下に以下のように配置されるものとします。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
では、すべてのコードについて1つ1つ内容を見ていきましょう。
まず、mail.htmlは、メールの送信先や本文などを入力するHTMLフォームです。サーブレットクラスへのデータ送信を行うビュー役割も持っています。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ServletMail.javaは、mail.htmlからの入力を受けて、JavaBeansであるSendMail.javaを呼び出し、メールの送信を行うサーブレットクラスです。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
SendMail.javaは、メール送信アプリケーションのコア部分です。メール情報を保持し、実際のメール送信部分のロジックを定義するJavaBeansです。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
result.jspは、送信したメールに関する情報を表示します。サーブレット、JavaBeansの処理結果を表示するビューです。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
サンプルアプリケーションのコードはここまでです。本アプリケーションのデプロイメント・ディスクリプタ(web.xml)は以下の通りです。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
以降の画面がメール送信アプリケーションの実行結果です。
なお、本サンプルを動作させるためには、以下のサイトからJavaMailとJAF(Java Activation Framework)をダウンロードし、あらかじめサーバ環境にインストールしておく必要があります。
- http://java.sun.com/products/javamail/(JavaMail)
- http://java.sun.com/products/javabeans/glasgow/jaf.html(JAF)
インストール方法は簡単です。ダウンロードしたjavamail-X_X.zip(JavaMail)、jafX_X_X.zip(JAF)を適当なフォルダに解凍したうえで(X_X、X_X_Xはバージョン番号)、解凍フォルダ配下のmail.jar、activation.jarをそれぞれアプリケーションルート配下の「/WEB-INF/lib」フォルダにコピーするだけです。「.jar」ファイルをコピーした後は、Tomcat(またはアプリケーション)を必ず再起動するようにしてください。
以上の設定で、以下のURLからアプリケーションにアクセスすることができるようになります。ここでは、アプリケーション名は「javatips」としておくことにします。
- http://localhost:8080/javatips/mail.html
注意
本サンプルは、Tomcat5.x環境に最適化されています。もしもTomcat4.xで動作させたい場合には、web.xmlの冒頭部を以下のように変更してください。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
One Point
JSP/サーブレット/JavaBeansを組み合わせることで、ビュー/コントロール/ビジネスモデルを明確に分離した、保守性に優れたアプリケーションを作成することができます。
Copyright © ITmedia, Inc. All Rights Reserved.