SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

作りながら学ぶJavaアプリケーションフレームワーク

Struts 2入門(1)~基本形で理解する仕組みと構造~

作りながら学ぶJavaアプリケーションフレームワーク

Struts 2の仕組みと構造

Struts 2アプリケーションの構造
Struts 2アプリケーションの構造

 では、Struts 2アプリケーションの構造を見てみましょう。前述のようにMVCパターンのモデル2アーキテクチャとなっています。

Controller

 コントローラ部がStruts 2のコア部分であり、FilterDispatchがすべての制御を担っています。intercetors(インターセプタ)とは実際の処理を実装したコンポーネントで、HTTPリクエストの処理や、結果の後処理、例外処理など、Struts 2で複数提供されています。インターセプタについては、回をあらためて説明します。

Model

 モデル部は、前述のActionクラスとなっていて、アプリケーションで用意するクラスです。リクエストURIに対応する形になり、Struts 2側でリクエストごとにオブジェクトの生成が行われます。Struts 1では、このあたりの構造がゴチャゴチャしていましたが、Struts 2ではロジックとデータがActionクラスにまとまり、すっきりしたオブジェクト指向的な設計になっています。

View

 ビューでは、URIリクエストの結果ページを表示します。デフォルトでは、HTMLテンプレートとしてJSPが利用されます。その他、FreeMarker、Velocityといったテンプレートも使えます。Struts 2が提供するカスタムタグを用いて、Actionクラスのデータにアクセスすることになります。

 以上の大まかな説明では今ひとつイメージがわかないかもしれません。そこで次は、実際のソースや設定ファイルを用いて説明することにしましょう。本稿のとおりに自分でWebアプリケーションを作っていけば、ファイルの構成や内容を通して、Struts 2の理解が深まると思います。

動作環境と開発環境

 Struts 2が動作する環境は、少なくとも次のバージョンが必要です。

  • Servlet API 2.4
  • JSP API 2.0
  • Java2 SE 5.0

 従って、JSP/サーブレットコンテナとしてTomcatを利用する場合は、バージョンは5.5.25以上が必要となります。本連載の解説では、ローカルのWindows環境でTomcat 6.0.16を利用し、WebサーバとしてTomcat自身のWebサーバ機能を使う方式を前提とすることにします。また、開発ツールには、多くの選択肢があるなかから最も一般的だと思われるEclipse 3.3 EuropaとTomcatプラグインを用いて、その開発手順を紹介します。

開発環境のインストール

 JavaSE、Tomcat、Eclipse 3.3、Tomcatプラグインのインストールについては、皆さんご存じだと思いますので、あらためて解説はしません。WINGSプロジェクトサーバサイド環境構築設定ページなどを参考にしてください。

Struts 2の入手

 本稿執筆時の最新バージョンは、Struts 2.0.11です。Struts 2のダウンロードページから入手できます。ダウンロードページには、いろいろなパッケージが並んでいます。今はFull Distribution(struts-2.0.11-all.zip)を選び、適当なところに解凍しておきましょう。zipファイルには、ドキュメントやサンプルコード、Struts2本体やプラグインのJARファイルなどが含まれています。その中から必要に応じて、参照・利用することになります。

Struts 2ダウンロードパッケージ
Struts 2ダウンロードパッケージ
ダウンロードファイル一覧
 Struts 2のダウンロード・パッケージの内容は、次のようになっています。
ダウンロード・パッケージ一覧
パッケージ名:ファイル名概要
Full Distribution: struts-2.0.11-all.zip以下のものすべて含まれています
Example Applications: struts-2.0.11-apps.zipサンプルアプリケーション
Blank Application only:struts2-blank-2.0.11.war最小のサンプルアプリケーション(Example Applicationsにも含まれています)
Essential Dependencies Only: struts-2.0.11-lib.zipライブラリのみ
Documentation: struts-2.0.11-docs.zipサイト上のドキュメント一式
Source: struts-2.0.11-src.zipStruts 2のJavaソースファイル
Alt+rnative Java 4 JARs: struts-2.0.11-j4.zipJava2 SE 1.4の環境で動作するようにしたStruts 2

次のページ
Struts 2アプリケーションの作成 1

この記事は参考になりましたか?

作りながら学ぶJavaアプリケーションフレームワーク連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 高江 賢(タカエ ケン)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2296 2008/03/21 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー