Strutsの常識を知り、EclipseとTomcatの環境構築:Webアプリの常識をJSPとStrutsで身につける(2)(1/4 ページ)
本連載は、JSP/サーブレット+StrutsのWebアプリケーション開発を通じて、Java言語以外(PHPやASP.NET、Ruby on Railsなど)の開発にも通用するWebアプリケーション全般の広い知識・常識を身に付けるための連載です
いまさら聞けないStrutsの常識
今回は、「Strutsの常識」と題し、Webアプリケーションフレームワークの1つであるStrutsについての概要を説明したうえで、JDKやEclipse、TomcatなどのWebアプリケーション作成の環境構築を行い、サンプルプログラムを実際に作成してみましょう。
連載第1回の「いまさら聞けない、Webアプリケーションの常識」で、「本連載ではStrutsを取り上げていきます」といいましたが、初めに「Strutsとはどのようなものか?」「Strutsを使用するメリットは何なのか?」などを織り交ぜながら詳しく説明することにしましょう。
■Strutの意味は「支柱」「方杖」「誇示」
Strutsは、The Apache Software Fundationが2000年から開発しているオープンソースのソフトウェアです。「Apache Software License 2.0」というライセンスに基づいて公開されています。
正式名称は「Apache Struts」で、「アパッチ・ストラッツ」などと読みますが、本連載では「Struts」と表記することにします。Strutsという言葉は、英語の「strut」の複数形で「支柱」「方杖」「誇示」などの意味があります。
■Strutsは「枯れたフレームワーク」
Strutsは2008年7月現在、JSP/サーブレットを使うJavaのWebアプリケーションを開発するうえで、最も使われているフレームワークの1つといっても過言ではないでしょう。開発当初の2001年ぐらいから使われ続けて8年近くが経過し、最近は良い意味でも悪い意味でも「枯れたフレームワーク」といわれるようになっています。
Struts開発のためのツールやStrutsのプラグイン、さらにStruts自体を拡張したフレームワーク/ライブラリやStrutsと連携できるフレームワーク/ライブラリも多数存在します。
- ツール
AppFuse、Struts Studio(現在のExadel Studio)、StrutsIDEプラグインなど - プラグイン
Validatorプラグイン、Tilesプラグインなど - 拡張フレームワーク/ライブラリ
S2Struts、SAStruts(Super Agile Struts)、TERASOLUNA Server Framework for Java、NetUI Page Flowsなど
■Strutsの便利なところ
Strutsは前回紹介したMVCモデル採用のフレームワークであり、画面の変更であれば、Viewである画面(JSP)の修正だけで済むという開発効率向上のメリットがあります。
また、コードは後述しますが、Strutsには独自のタグライブラリが用意されているので、画面(JSP)の記述レベルを統一できると同時に、可読性の低下を防止することが可能で、より品質の高いWebアプリケーションを構築できます。前回説明したように、JSPでは「<%=」「%>」で囲まれるコード、例えば「<%= new java.util.Date() %>」の部分のようなJava言語のコードを埋め込む必要がある場合もありますが、Strutsでは独自のタグライブラリによりJava言語のコードを混在させる必要はありません。
チームでWebアプリケーションを設計すると、個々のエンジニアの設計手法や、考えが違うため、実装方法に多少の差異があるWebアプリケーションが構築されてしまいがちです。Strutsでは上記のメリットがあるため、その問題を解消することが可能なのです。
Strutsのメリットは、ほかにもいろいろとあります。詳しくは記事「Strutsを使うWebアプリケーション構築術(1)」をご参照ください。
■Strutsの不便なところ
しかし、Strutsは広く使われ過ぎたためか、「XMLの設定ファイルが多い!」「脆弱(ぜいじゃく)性があるぞ!」などの議論の対象になることも多く、独自拡張したり前述のプラグインや拡張フレームワーク、ライブラリを使うなどして問題に対処している開発プロジェクトも多いようです。
今回はStruts自体の概要のため詳しくは触れませんが、XMLでの設定や脆弱性については今後の連載で取り上げる予定です。「それまで待てない!」という読者は連載「Strutsで作るセキュアWebアプリケーション」を参照しておいてください。
■Struts以外の主なWebアプリケーションフレームワーク
Javaでは、Struts以外の主なWebアプリケーションフレームワークとして、主に以下のものがあります。
- JSTL(JSP Standard TagLibrary)
- JSF(Java Server Faces)
- JBoss Seam
- Apache Shale(Strutsの後継として作られたが、後述のStruts 2系と同じくほとんど別物)
- Apache Tapestry
- Apache Wicket
- SpringMVC
またJava以外では、主に以下があります。
- .NET
ASP.NETなど - Ruby
Ruby on Railsなど - PHP
ZendFramework、Symphonyなど
ASP.NETとStrutsの比較は記事「ASP.NET vs. Struts フレームワーク徹底比較」を、Ruby on RailsとStrutsの比較は記事「Javaから見たRuby on Rails Java+Sturtsの視点からRailsを捉える」などが参考になります。
■Struts 2系もあるが……
Strutsについて概要を説明したところで、サンプルプログラムを作りながら、Strutsを用いたWebアプリケーションの構成要素を説明していきたいと思います。
ちなみに、本連載では、Strutsのバージョンは1.3.8を使います。Struts 2系もすでにあるのですが、こちらは同じくWebアプリケーションフレームワークであるWebWorks 2を基に作られたもので、Struts 1系とは異なる機能を提供するものです。2008年7月現在では、Struts 1系の方が実業務に使われることが多いと思いますので、Struts 1系を採用することにしました。あらかじめご了承ください。
■サンプルプログラムの構成図
ここで、いったん本稿で作成するサンプルプログラムについて確認しておきます。本稿では、Strutsの簡単なサンプルプログラムとして「PKG」というワークスペース(作業フォルダ)を作成しておきます。「PKG」の構成図は以下のとおりです。
構成図を見ると大変そうですが、自分で最初からすべてを作成するわけではなく、Strutsが提供しているサンプルプログラムを流用するので、難しいファイルの作成や、設定はありません。
次ページからは、Strutsを使ったWebアプリを作るための環境構築するためのソフトウェアをインストールし、設定を行っていきます。
Copyright © ITmedia, Inc. All Rights Reserved.