Webアプリ開発エンジニアのための技術情報サイト「テックスコア」

0.J2EEパターンの前に

J2EEパターンの説明に入る前に、まずはMVCとは何かという説明から入りたいと思います。なお、パターンについてはデザインパターンを参照してください。

0.1 MVCモデル

アプリケーションを設計するには、ただ動くものを作ればよいというわけではなく、拡張性や保守性、再利用性などの高いものが望まれます。また、複数の人間が同時にアプリケーションの開発を進める場合、効率良く開発を進めるには、それぞれ専門家の専門分野ごとに役割を分担できることが重要です。MVCモデルとは、Model、View、Controllerの頭文字をとったもので、GUIアプリケーションの構成要素を業務処理、表示、制御の3つに分けて、設計・開発を行うという考え方です。

MVCモデルの各要素は以下のようになっています。

  • Model
    モデルと呼ばれ、業務処理やデータの保持などを担当します。
  • View
    ビューと呼ばれ、出力、表示などを担当します。
  • Controller
    コントローラと呼ばれ、入力を受け取り、ModelとViewの制御を担当します。

MVCモデルにおける入力から出力までの流れを説明します。

MVCモデルにおける入出力
  1. 入力をControllerが受け取ります。
  2. Controllerは入力内容を判断し、Modelに業務処理を行うよう命令します。
  3. Modelの処理が終わると、ControllerはViewを呼び出します。
  4. Viewは出力に必要な情報をModelから参照します。
  5. ViewはModelから参照した情報を適切に整形して出力します。

このようにMVCモデルを利用し、機能ごとに分離することで、開発作業の分業が容易になります。また、コンポーネント間の独立性が高くなるので再利用性が高まります。それに、他のコンポーネントを変更してもそれ以外のコンポーネントは影響を受けにくいため、保守性に優れたアプリケーションを開発できるようになります。

0.2 J2EEにおけるMVCモデル

次に、J2EEを利用してWebアプリケーションを開発する場合について考えてみます。MVCモデルに当てはめてみると、入力はHttpRequest、出力はHttpResponse、そしてクライアントはWebブラウザということになります。

J2EEにおけるMVCモデルの各要素は以下のとおりです。

  • JavaBeans
    モデルの役割を果たし、業務処理やデータの保持などを担当します。
  • JSP
    ビューの役割を果たし、HTMLの出力(Response)を担当します。
  • Servlet
    コントローラの役割を果たし、入力(Request)を受け取り、JavaBeansとJSPの制御を担当します。

以下に入力から出力までの流れを説明します。

J2EEにおけるMVCモデルの入出力
  • HttpRequestをServletが受け取ります。
  • Servletはリクエストの内容を判断し、JavaBeansに業務処理を行うよう命令します。
  • JavaBeansの処理が終わると、ServletはJSPを呼び出します。
  • JSPはHttpResponseを生成するのに必要な情報をJavaBeansから参照します。
  • ViewはJavaBeansから参照した情報を適切なHTMLにしてHttpResponseを返します。

このようにJ2EEでのWebアプリケーション開発においてもMVCモデルを適用することができます。各コンポーネントの独立性が高くなるように設計できれば、再利用性や保守性が高まるのは [0.1 MVCモデル] でも説明したとおりです。



  TECHSCOREのTOPページへ 次のページへ
techscore(トップページへ)
TECHSCORE書店
TECHSCOREトップページJavaSQLXMLリッチクライアントモデリングセマンティックWebその他技術Tuigwaa