次に、再利用性が高く、明確に機能分担されるなどの理由でWebアプリケーションを開発する際に推奨されている「MVCモデル」について説明します。
「MVC」とは「Model」「View」「Controller」の頭文字を取ったものになります。MVCはJava開発における概念のことを指します。次回以降で説明するJavaのフレームワークであるStrutsの基本設計思想となっていて、Strutsを使ったWebアプリケーションを設計する際の基本となる考え方となっています。
MVCモデルの利点も含めての説明は、「MVCモデルという言葉をよく聞きますが何のことですか?」を参考にしてください。
本連載では、下記がMVCのそれぞれに当たります。
それでは、ここで出てきたJavaBeansとJSP、サーブレットを順に説明します。
「JavaBeans」とは、Javaによるソフトウェア・コンポーネント開発モデルです。共通モジュールを部品として利用し、ソフトウェアを開発する手法の実装と使用を指します。
JavaBeansの仕様に基づいて作成された再利用可能なコンポーネントを「JavaBean」や「Bean」と呼びます。「JavaBean」や「Bean」はサーブレットで作成・保存し、JSPで読み込むデータそのもの(オブジェクト)です。
今回は、Struts上で、JSP/サーブレットを使うシステム開発を想定していますが、「JavaBeansのJavaBeansたるゆえん」にJavaBeansの詳しい解説がありましたので、参考にしてください。
「JSP」とは、JavaServerPagesの略です。HTMLファイルにJavaのコードを埋め込んだファイルのことを指し、最終的にWebブラウザに戻したいページをHTML形式で作成します。
動的に値を表示したい部分にJavaのコードを埋め込みます。これは、JSPタグと呼ばれるタグで記述する必要があります。初回実行時にアプリケーションサーバでJavaのコード(サーブレット)に変換され、コンパイルされます。
JSPの詳細については、「JSPとは何ですか?」を参考にしてください。
「サーブレット」とは、サーバ側で動作するJavaのプログラムのことを呼びます。WebブラウザなどからHTTPリクエストを受け、実行します。HTTPリクエストを受け取り、何らかの処理を行い、HTTPレスポンスにて、結果を返します。単独では動作しません。サーブレットを実行できる環境が必要となります。
サーブレットの詳細については、「Javaを紐解くための重点キーワード『Java Servlet(サーブレット)』」を参考にしてください。
最後に、フレームワークについて説明し、以上をWebアプリケーションの前提知識とします。
「フレームワーク」とは、アプリケーションを開発するに当たって“土台”、もしくは“枠組み”となるソフトウェアのことを指し、クラスやライブラリの集まりのことです。再利用可能な共通ライブラリをフレームワークにまとめることによって、開発効率を高め、品質を確保します。
一般的には、フレームワークに機能を追加していく形で、Webアプリケーションの開発を進めます。Webアプリケーションのフレームワークとして有名なのは、Apache Struts(以降、本連載では「Struts」と呼ぶ)やRuby on Railsなどがあります。
本連載はJavaプログラマー向けということで、Strutsを取り上げていきます。Strutsについては、次回詳しく説明する予定となっているので、今回は割愛します。
今回は本連載を読んでいくうえでの前提条件として、「Webアプリケーションの常識」を紹介しましたが、いかがでしたでしょうか。今回の内容をしっかりと覚えて、次回以降に備えておいてください。また、JSP/サーブレットやStrutsを含む「JavaベースWebアプリケーション開発の歴史」も知っておいた方がいいでしょう。
そして、下記が今後の連載予定内容となっています。前半では、Webアプリケーションを構築するうえで必要な技術の常識を解説し、中盤ではJavaのテクノロジーと絡めた技術の説明を、後半ではWebアプリケーション特有の技術や制約などについて説明していく予定です。
次回は、「Strutsの常識」と題し、Webアプリケーションのフレームワークの1つであるStrutsについての概要やサンプルプログラムなどを解説しますので、お楽しみに!
石川 靖(いしかわ やすし)
株式会社メセナ・ネットコム所属
プログラマー、SE、プロジェクトマネジャーを経て、現在、PMO(マネジャー)として従事。Webのフロントエンド部分の開発を得意とする。PMP資格保有者。
社会貢献のため新しいビジネスの創造を行うとともに、「真の技術者」への道を奔走中。
個人ブログ
New Horizon
Copyright © ITmedia, Inc. All Rights Reserved.