Controller
一言まとめ
「$ServletのようなViewとModelを制御する機能$ 」
【説明】
コントローラは、ViewとModelを制御します
MVCモデルにおいてのControllerは、名前の通り「システムをコントロールする役割」役割の機能のことで、ViewやModelへの命令を担います
【特徴】
Controllerは、自分自身でModelとViewの仕事である「ロジックの実行」や「画面の表示」は行わない。
Controllerの仕事は以下のように、「ModelとViewに仕事を割り当てる事」です。
- Viewからリクエストを受け取る
- Modelへ処理の命令を出す
- Modelから処理の結果を受け取る
- Viewへレスポンスを返す
JavaEEではControllerはWeb層とEJB層の2つに分かれており、以下のような流れで処理が行われる
- Web層でViewからの入力を受け付けて、Webに依存しない形式に変換
- その情報をEJB層に送信
- EJB層は送信された内容に応じて、必要なロジックが実装されたModel(EJB)に処理を依頼
- 処理結果はEJB層からWeb層へフィードバックされる
- Web層がView(JSP)に表示処理を依頼
- クライアントへ結果が送信される
【補足】EJB(Enterprise JavaBeans)
結論、ModelやJavaのクラスのことを指す。
EJBとは、Java言語の企業システム向け拡張仕様Java EE(Enterprise Edition)の一部で、サーバ上で動作するアプリケーションをソフトウェア部品(コンポーネント)を組み合わせて開発・実行できるようにするもの。
【使用場面】
一例は以下です。
- サーブレットクラス
- 要求の受け取り
- 処理実行依頼(Model)
- 結果表示依頼(View)
- (Rest Controller)ユーザからリクエスト受けModelに処理を依頼する機能
【まとめ】
とりあえず概念についてはイメージが付いてきたので、実際にコードを書いて落とし込んでいきたい。