Webアプリ開発に推奨されている「MVCモデル」とは?
次に、再利用性が高く、明確に機能分担されるなどの理由でWebアプリケーションを開発する際に推奨されている「MVCモデル」について説明します。
「MVC」とは「Model」「View」「Controller」の頭文字を取ったものになります。MVCはJava開発における概念のことを指します。次回以降で説明するJavaのフレームワークであるStrutsの基本設計思想となっていて、Strutsを使ったWebアプリケーションを設計する際の基本となる考え方となっています。
- Model
ビジネスロジックなど、「システムの根幹」部分を担当ビジネスロジックなど、「システムの根幹」部分を担当 - View
その名のとおり「表示」や「入出力」を担当その名のとおり「表示」や「入出力」を担当 - Controller
上述の、ModelとViewの制御を担当上述の、ModelとViewの制御を担当
MVCモデルの利点も含めての説明は、「MVCモデルという言葉をよく聞きますが何のことですか?」を参考にしてください。
本連載では、下記がMVCのそれぞれに当たります。
- Model:JavaBean
- View:JSP(JavaServerPages)
- Controller:サーブレット(Servlet)
それでは、ここで出てきたJavaBeansとJSP、サーブレットを順に説明します。
■JavaBeansとは?
「JavaBeans」とは、Javaによるソフトウェア・コンポーネント開発モデルです。共通モジュールを部品として利用し、ソフトウェアを開発する手法の実装と使用を指します。
JavaBeansの仕様に基づいて作成された再利用可能なコンポーネントを「JavaBean」や「Bean」と呼びます。「JavaBean」や「Bean」はサーブレットで作成・保存し、JSPで読み込むデータそのもの(オブジェクト)です。
今回は、Struts上で、JSP/サーブレットを使うシステム開発を想定していますが、「JavaBeansのJavaBeansたるゆえん」にJavaBeansの詳しい解説がありましたので、参考にしてください。
■JSPとは?
「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アプリの常識」とは?
今回は本連載を読んでいくうえでの前提条件として、「Webアプリケーションの常識」を紹介しましたが、いかがでしたでしょうか。今回の内容をしっかりと覚えて、次回以降に備えておいてください。また、JSP/サーブレットやStrutsを含む「JavaベースWebアプリケーション開発の歴史」も知っておいた方がいいでしょう。
そして、下記が今後の連載予定内容となっています。前半では、Webアプリケーションを構築するうえで必要な技術の常識を解説し、中盤ではJavaのテクノロジーと絡めた技術の説明を、後半ではWebアプリケーション特有の技術や制約などについて説明していく予定です。
- Strutsの常識
- ソースコード以外の設定ファイルの常識
- サーバとクライアントの常識
- HTMLタグ、バリデーションについて
- プロトコルの常識
- ステートの常識
- データベース連携の常識
- Webアプリケーションのテスト手法の常識
- Webアプリケーションにおけるセキュリティ、脆弱(ぜいじゃく)性の常識
- Webアプリケーションにおけるスクリプトの常識
次回は、「Strutsの常識」と題し、Webアプリケーションのフレームワークの1つであるStrutsについての概要やサンプルプログラムなどを解説しますので、お楽しみに!
プロフィール
石川 靖(いしかわ やすし)
株式会社メセナ・ネットコム所属
プログラマー、SE、プロジェクトマネジャーを経て、現在、PMO(マネジャー)として従事。Webのフロントエンド部分の開発を得意とする。PMP資格保有者。
社会貢献のため新しいビジネスの創造を行うとともに、「真の技術者」への道を奔走中。
個人ブログ
New Horizon
- JavaScript/Ajaxで知るWebアプリとスクリプトの常識
- Webアプリにおける11の脆弱性の常識と対策
- JUnitとEclipseを使って学ぶ、“テスト”の常識
- Hibernateで覚えるO/RマッピングとBeanの常識
- MySQLの常識を知りセットアップしてJSPからDB操作
- Webアプリ開発の常識、バリデーションとテンプレート
- 発掘! Webの“あるある”問題点−ステートの常識
- もはやWeb利用者の常識、“URL”の意味を理解しよう
- HTMLやStrutsに必須の“タグ”と“サブミット”の常識
- Webアプリにおけるサーバとクライアントの常識
- Strutsの常識を知り、EclipseとTomcatの環境構築
- いまさら聞けない、Webアプリケーションの常識
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Java開発者のためのFAQ集
Java開発者が 最低限押さえておくべきJavaに関する基礎知識、実際のソリューション構築の場面で定石とされるノウハウ、プログラミングTIPSなどのFAQをご紹介していきます。 - サーブレットの基礎知識と活用
- JSPの基礎知識と活用
- セッション管理
- Servlet/JSPリファレンス
- やり直し「JSPとTomcat」
途中までかじったが挫折した。スキルチェンジしたい!という読者のために、Tomcatの最新バージョンを使いながらJSPを基礎から解説していく - Strutsを使うWebアプリケーション構築術
ステップ・バイ・ステップの解説で誰にも分かるStruts講座。効率の高いWebアプリケーション開発をマスターしよう - Javaプログラミングに役立つテクニックとノウハウ集
- JSP/サーブレット(JSTL、Google活用なども)
- Apache/Jakarta(Struts、Ant、Excel活用なども)
- Tomcatを使う「JSPプログラミング」
無償で入手できるTomcatを使ってJSPの基礎を学ぼう - 基礎から学ぶサーブレット/JSP
サーブレットの基本からJSP、カスタムタグまで、実践的なサーバサイドJavaプログラミングの基礎を1から学びます - プログラマーの常識をJavaで身につける
Javaコアパッケージは応用範囲が広いため、普段使わないクラスに意外な発見があるはずです。そこから、さまざまな「常識」を学びましょう