MVC คืออะไร?
MVC เ้็ป็นเฟรมเวิร์คที่เกิดขึ้นในยุค Smalltalk โดยครั้งแรกได้ถูกนำมาใช้ในการสร้างแบบจำลอง graphical user Interaction อย่างไรก็ตามแนวคิดนี้ยังถูกนำมาใช้ในการสร้าง multi-tier enterprise application
- Model คือ ออบเจ็กต์ที่เป็นตัวแทนข้อมูลขององค์กร ที่ต้องการเข้าถึง
- View คือ ออบเจ็กต์็ที่ใช้ในการแสดงข้อมูลขององค์กร โดยจะเข้าถึงข้อมูลผ่านทางออบเจ็กต์ model และเลือกวิธีการที่จะแสดงข้อมูลนั้น ซึ่งเมื่อข้อมูลใน model มีการเปลี่ยนแปลง ข้อมูลที่แสดงใน view ก็ต้องเปลี่ยนด้วยเช่นกัน ซึ่ง view จะมีเรียกใช้ model เมื่อต้องการอัพเดทข้อมูล
- Control เป็นตัวแปล interaction ของผู้ใช้ที่ทำกับ view ให้เป็น action ที่จะทำกับ model ใน stand-alone GUI clinet, interaction จากผู้ใช้ได้แก่การกดคลิกที่ปุ่มหรือเมนู ในขณะที่ web application จะหมายถึง HTTP request GET และ POST ซึ่ง action ที่จะทำกับ model อาจเป็นการเรียกใช้ bussiness method หรือ การเปลี่ยนแปลงข้อมูลในตัว model ซึ่งขึ้นกับ interaction ของผู้ใช้ว่าเป็นอย่างไร จากนั้น controller จะทำการเลือก view ที่เหมาะสมสำหรับผลลัพธ์นั้น ๆ

MVC ในมุมมองของ Web
ในการพัฒนา web applicaton, จะแทน view แทนด้วย JSP, controllers แทนด้วย Servlet และ model แทนด้วย Javabean EJB หรือคลาสของจาวาอื่น ๆ
เมื่อเกิด interaction ของผู้ใช้ที่ฝั่งบราวเซอร์ Servlet (Controller) จะสร้าง instance ของ bean (Model) ที่ต้องการเข้าถึงโดยจากนั้นเปลี่ยนให้เป็น object หรือ session object และส่งต่อไปยัง JSP (View) เพื่อแสดงผลลัพธ์ที่เหมาะสม

ภาพประกอบแนวคิดของการใช้ MVC Framework ในการพัฒนา web application ครับ
