■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
                      2008年05月18日

    楽しいJava講座 - 初心者から達人へのパスポート
                  vol.104

                                セルゲイ・ランダウ
 バックナンバー: http://www.flsi.co.jp/Java_text/
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■


[このメールマガジンは、画面を最大化して見てください。]


========================================================
◆ 01.Strutsのアプリケーション開発
========================================================


Strutsとは、Webアプリケーションを開発するためのフレームワーク
(framework)です。
ここでいうフレームワークとは、元々はアプリケーション・フレーム
ワーク(application framework)と呼ばれていたもので、日本語に訳す
と「アプリケーションの骨組み」という意味になります。
なぜか、ほとんどの市販の本では、frameworkを「枠組み」と訳している
(さもなくば「フレームワーク」と、カタカナ書きにしている)ようです
が、これは最初に訳した人が「枠組み」という、辞書に載っている訳語を
使い、後続の人たちがそれに倣ったもののようです。
でも、「枠組み」と訳してしまっては、意味がよくわからないでしょう。
(かといって、「フレームワーク」とカタカナ書きにされても何のことやら
よくわからないでしょう。)


このフレームワーク(framework)という単語は、実は、船や建物などの
構築物を構築するときの「骨組み」を意味する言葉であり、アプリケー
ション・フレームワークというのは、アプリケーションを構築するための
骨組みを提供するソフトウエアを意味します。
そして、船や建物などの構築物の場合は、その骨組みの上に板を張ったり
壁を塗ったりして、あるいは石膏細工の場合は骨組みの上に石膏で肉付け
を行うことによって構築物を完成させますが、アプリケーション・フレー
ムワークのユーザー(フレームワークを使ってアプリケーションを開発す
る人)は、フレームワークという骨組みに対して肉付けを行うだけで、
アプリケーションを完成させることができます。

つまり、骨組みが既に提供されていて、それに対して肉付けを行うだけで、
アプリケーションが完成するのですから、生産性が向上し(開発期間が短縮
でき)、かつ、(予めよく考えられた構造の骨組みが提供されているので)
しっかりした構造のアプリケーションが構築できるのです。


このフレームワークという概念は、オブジェクト指向技術の発展の過程で
発生してきたもので、実際の骨組みは、汎用的な(基本的な)クラス群や
それらのクラス間の相互作用(呼び出し合い)が予め規定されたクラス群
という形式で提供されます。

そして、それらの汎用的なクラス群の中には、抽象クラス、つまり実装され
ていないクラス(Javaの場合は、インターフェースも同様の役割で使われる)
という形式を取ることによって実装を強要するものもあり(あるいは決まりきっ
た共通の機能やデフォルトの機能が実装された具象クラスだけで構成される
場合もありますが)、それらのサブクラスを作成して実装を行うという作業に
よって、肉付けが行われることになります。(もちろん、それらのサブクラス以外
にも必要なクラスがあればユーザーが作成する必要がありますし、クラス以外
にもデータのファイルなど、ユーザーが作成しなければならないファイルがあり
ます。)


このフレームワークは大きく分けて、特定の業務分野のアプリケーションの機能
を本格的に提供して、より少ない作業でアプリケーションを開発できるようにした
ものと、アプリケーションのうちの小さい範囲の機能だけを提供する代わりに
業務分野を特定せずに広い分野で用いることのできるものの2種類があります。

そのうち、Strutsは後者のタイプのフレームワークです。
つまり、Web上で提供されるアプリケーションを開発するための機能だけを提供し、
特定の業務分野の機能を提供することはありませんので、業務の機能はすべて
ユーザーが開発する必要がある代わりに、幅広い業務分野で使用することが
できます。


このWebアプリケーションを開発するためのフレームワークとして現在一番よく
使われているのがStrutsですし、様々な本番のWebアプリケーションで使われて
いる、実績のあるフレームワークですので、StrutsはJavaの技術者が学んでおく
べき技術の一つであると言えると思います。


というわけで、これから、Strutsを使ったアプリケーション開発を学びながら、
より詳しくWebアプリケーション開発の技術を学んでいくことにしましょう。



では、何はともあれ、Strutsをダウンロードしてインストールしておきましょう。
もちろんStrutsはオープン・ソースです(Apacheのプロジェクトの一つです)ので、
無料でダウンロードできます。


(1)
Webブラウザーを起動して、下記URLを入力してください。

http://struts.apache.org/downloads.html

(2)
・General Availability (GA) Releases - Ready for Prime Time!

という行の下にある

Struts 1.3.8

をクリックしてください。
(より新しいStruts 2.0.11.1というのもありますが、今回は
実績のある1.3.8のほうを使用します。)

(3)
・Full Distribution:

という行の下にある

struts-1.3.8-all.zip

をクリックしてください。

(4)
「ファイルのダウンロード」ウインドウが表示されたら「保存」ボタン
をクリックします。

後は、いつものように、保存する場所(たとえばマイドキュメント)を
指定して保存し、保存されたファイルを解凍してください。
(多量のファイルが含まれるため、解凍にかなりの時間がかかることがあります。)


解凍先に、以下のようなフォルダーができるはずです。

apps
docs
lib
src

このうち、最低限必要なものはlibフォルダーに入っているJARファイルで、
これがStrutsの本体です。このうち、struts-から始まるファイル名のものが
純粋なStrutsのJARファイルで、他のJARファイルはApacheの別のプロジェクト
で作られたファイルです。
これらのJARファイルは、WebアプリケーションのWEB-INF/libディレクトリー
にコピーする必要があります。(あとでWebアプリケーションの作成時にこの
作業を行います。その他、web.xmlファイルとstruts-config.xmlというファイ
ルの作成も必要になりますが、これもあとでWebアプリケーションの作成時に
行います。)


他のフォルダーにはそれぞれ、下記の内容のものがはいっています。
(Strutsを学ぶときに参照すると役に立ちます。)

apps = Strutsのサンプル・アプリケーション
docs = ドキュメント(マニュアル=説明書)
src = ソース・コード



では、Strutsを学習するために、サンプル・アプリケーションを一つ
動かして見ましょう。

(1) appsフォルダーの中にあるstruts-cookbook-1.3.8.warファイルを
TomcatのWebappsフォルダー、すなわち
C:\Tomcat6.0\webapps
の中にコピーしてください。

(2) Tomcatを起動してください。

(3) Webブラウザーを起動して、下記のURLを入力してください。

http://localhost:8080/struts-cookbook-1.3.8/index.jsp

(4) 表示されたページにおいて、

Simple Form using ActionForm

の右側の

Execute

をクリックしてください。

(5) 次の画面で、何も入力せずに「Submit」ボタンをクリックして
ください。

(6) 「Name is required.」などの赤色のメッセージが表示され
ますね。これは、入力すべきものを入力しなかったことに対する
エラー・メッセージです。

では、今度は適当に自分の名前(英文字で)の入力や選択などを
一通り行ってから、「Submit」ボタンをクリックしてください。

(7) 今度は赤色のメッセージは出ないで、代わりにHello ...の
メッセージが出ますね。

では、Webブラウザーの「戻る」ボタンを何度か押して、(4)の画面
まで戻ってから、先ほどのExecuteの右側にある
View source
をクリックしてください。

このサンプル・アプリケーションで使われているソース・コードが見ら
れます(たとえばSimple.jspをクリックする)。

これらのソース・コードを覗いてみてください。


(続く)


では、今日はここまでにします。

何か、わからないところがありましたら、下記のWebページまで質問を
お寄せください。



┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
★ホームページ:
      http://www.flsi.co.jp/Java_text/
★このメールマガジンは
     「まぐまぐ(http://www.mag2.com)」
 を利用して発行しています。
★バックナンバーは
      http://www.flsi.co.jp/Java_text/
 にあります。
★このメールマガジンの登録/解除は下記Webページでできます。
      http://www.mag2.com/m/0000193915.html
★このメールマガジンへの質問は下記Webページにて受け付けて
 います。わからない所がありましたら、どしどしと質問をお寄
 せください。
      http://www.flsi.co.jp/Java_text/
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Copyright (C) 2008 Future Lifestyle Inc. 不許無断複製