MVC是面試中常常被問到問題,若是能把MVC的原理簡單清楚的描述出來,確定會在面試官的心目中加分。java
若是在能畫圖的狀況下,畫出一張MVC的流程圖,無疑能簡化很多概念上的術語,若是不能也沒關係,只要把核心的內容說清楚就行。面試
下面是MVC的幾個關鍵性的概念,只要記下來就不怕之後面試再問到相似的問題了。設計模式
MVC的概念
MVC是Model-View-Controller的簡稱,即模型-視圖-控制器。
MVC是一種設計模式,它把應用程序分爲三個核心模塊:模型,視圖,控制器,它們各自處理本身的任務。工具
模型是負責業務邏輯的,通常採用javabean,server層,dao層。
視圖是負責顯示的,通常採用JSP,FreeMarker,Velocity。
控制器是負責中間調度的,通常採用servlet,filter,action。設計
MVC的流程server
首先控制器接收用戶的請求,並決定應該調用哪一個模型來進行處理。
而後模型根據用戶請求進行相應的業務邏輯處理,並返回數據。
最後控制器調用相應的視圖格式化模型返回的數據,並經過視圖呈現給用戶。blog
MVC的特色
1.多個視圖能夠對應一個模型。按MVC設計模式,一個模型對應多個視圖,能夠減小代碼的維護量,一旦模型發生改變,也易於維護。
2.模型返回的數據與顯示邏輯分離。模型數據能夠應用任何的顯示技術,例如,JSP,FreeMarker,Velocity。
3.應用被分隔爲三層,下降了各層之間的耦合,提供了應用的可擴展性。
4.控制層的概念也頗有效,因爲它把不一樣的模型和不一樣的視圖組合在一塊兒,完成不一樣的請求,所以,控制層能夠說是包含了用戶請求權限的概念。
5.MVC更符合軟件工程化管理的精神。不一樣的層各司其職,每一層的組件具備相同的特徵,有利於經過工程化和工具化產生管理程序代碼。ci