MCVモデルとは?
Webアプリケーションの開発では、サーブレットクラスとJSPファイルを組み合わせて作成します。組み合わせることで効率よく開発することができます。
組み合わせて開発する際に参考にされるのがMVCモデルです。
つまり…
アプリケーションの内部構造のお手本やガイドラインのようなもの。
もう少しちゃんと言うと...
GUIアプリケーションのための模範的な構造です。
サーブレットやJSPによるWebアプリケーションも基本的にGUIアプリケーションです。
MVCモデルにおける開発の3つの要素
MVCモデルは、アプリケーションを3つの要素(モデル、ビュー、コントローラ)に分けて開発します。以下の表に役割をまとめてあります。
要素 | 役割 |
---|---|
モデル(Model) | アプリケーションの主たる処理(計算処理など)やデータの格納などを行う |
ビュー(View) | ユーザーに対して画面の表示を行う |
コントローラ(Controller) | ユーザーからの要求を受け取り、処理の実行をモデルに依頼し、その結果の表示をビューに依頼する |
各要素は担当する役割が決められており、他の要素の役割は担いません。
役割を分担しておくことで、処理の修正や拡張を行う際にどの要素に手を加えたら良いかが明確になり、アプリケーションそのものの保守や拡張を行いやすくなる。
これらの要素が連携してアプリケーションの機能をユーザーに提供します。
WebアプリケーションでのMVCモデルの実現
コントローラはサーブレットクラスの担当
ユーザーからの要求(リクエスト)を受けて全体の制御を行うコントローラは、サーブレットクラスが担当します。リクエストはJSPファイルでもできますが、コントローラ役には、複雑な制御や、例外処理が求められます。そのような処理はJavaが主体のサーブレットクラスのほうが適しています。
モデルはJavaクラスの担当
ユーザーの要求(検索など)に応える処理や、その処理に関係するデータ(検索語や検索結果)を表すモデルは一般的なJavaクラスが担当します。ここでいう一般的なクラスとは、HttpServletRequestのようなWebアプリケーションに関するクラスやインターフェースを含んでいないクラスのことです。
利点:Webアプリケーションの知識がないプログラマでも、モデル開発に参加できるようになります。
ビューはJSPファイルの担当
出力を行うビューは、HTMLの出力を得意とするJSPファイルが担当します。サーブレットクラスでも出力できますが、println()メソッドを大量に必要とするため処理が煩雑になってしまいます。
利点:JSPファイルはHTMLをそのまま書けるので、Webページのデザイン担当者にJavaの知識がなくてもデザインすることができます。
参考文献
国本大悟『スッキリわかるサーブレット&JSP入門 第2版』株式会社インプレス、2019年