##MVCとは
JavaサーブレットとJSPを利用したMVCモデルの開発を経験したので、その備忘録としてMVCモデルについてまとめます。
まず、MVCモデルの意味についてですが
M(Model)V(View)C(Controller)の頭文字をとったものになります。
Model
データを格納しておくための入れ物や処理などを担当します。
処理→Logicクラス(Java)
データの入れ物→データの入れ物→JavaBEANSクラス
View
画面の表示を担当します。
画面の表示→JSP
Controller
ModelとViewなどの処理を依頼したり画面遷移させたりなど、窓口を担当します。
窓口→サーブレットクラス
図を見ていただくと「スコープ」というものが登場しています。
スコープについて詳しくはこちらを参照してください。
今回の図ではリクエストスコープを利用する場合で考えます。
①サーブレットクラスでユーザーからのアクセスを受け取ります。この際、ユーザー側から情報が送られることがあるので、それを受け取る場合はサーブレットクラスで受け取ります。
②サーブレットクラスから引数としてLogicクラスに何か値を渡す場合、もしくはLogicクラスからの戻り値として値を返す場合などにJavaBEANSクラスの入れ物に入れて受け渡しを行います。
③スコープにデータを保存します。
④サーブレットからJSPに遷移します。
⑤スコープからデータを取り出します。
⑥ユーザーに画面を表示します。
※よく参考書などででてくる**「リクエスト」は①の動きで「レスポンス」**は⑥の動きに当たります。
###補足
ここでは説明を割愛しましたがデータベースへの参照や登録や更新や削除がこの作業に追加された場合には、データベースを操作するためのLogicクラス(DAOクラス)というものを作成し、コントローラー→DAOクラス→データベースというアクセスになります。
また、逆にLogicクラスすら使わず、クリックしたら画面を遷移するだけの場合などはサーブレットとJSPだけでも画面遷移は可能です。図でいうところの①④⑥の動きです。