mvc模型有什么特點 如何實現(xiàn)MVC模式?
如何實現(xiàn)MVC模式?在MVC設(shè)計模式中:C代表控制器,負責(zé)用戶界面和業(yè)務(wù)邏輯層之間的通信控制。一方面,它解釋用戶界面的輸入,識別用戶操作(如單擊按鈕等),并調(diào)用相應(yīng)模型中的方法。另一方面,它處理來自模
如何實現(xiàn)MVC模式?
在MVC設(shè)計模式中:C代表控制器,負責(zé)用戶界面和業(yè)務(wù)邏輯層之間的通信控制。一方面,它解釋用戶界面的輸入,識別用戶操作(如單擊按鈕等),并調(diào)用相應(yīng)模型中的方法。另一方面,它處理來自模型的事件和返回的執(zhí)行結(jié)果,并調(diào)用適當(dāng)?shù)囊晥D顯示給用戶??刂破髦饕蓅ervlet完成。M代表model,負責(zé)整個解決方案的業(yè)務(wù)邏輯實現(xiàn),底層數(shù)據(jù)庫也由model訪問和操作;V代表view,負責(zé)向用戶顯示系統(tǒng),主要由HTML和JSP完成;
如何實現(xiàn)MVC模式?
最簡單的方法是使用MVC框架,如struts或JSF,它本身就是一個實現(xiàn)。如果您自己實現(xiàn)它,則更復(fù)雜的事情是編寫主控制器、接受所有用戶的請求、將其分發(fā)給其他servlet或直接跳轉(zhuǎn)到頁面。最好使用MVC框架,了解其生命周期和原理,然后查看框架控制器的源代碼。
原理:
JSP的開發(fā)經(jīng)歷了兩個模型時代。在JSP模型時代,代碼是寫在JSP頁面上的。當(dāng)用戶訪問JSP頁面時,JSP頁面操作數(shù)據(jù)庫并將值返回給JSP頁面。這樣一來,一是不易維護,二是安全性不高,三代代碼結(jié)構(gòu)不清晰,四是可重用性不高。這就是JSP模型。在第二個時代,人們將所有頁面請求交給servlet控制器來接受并分發(fā)它們。servlet決定是調(diào)用其他servlet來訪問數(shù)據(jù)庫還是跳轉(zhuǎn)頁面。這個servlet在MVC中是C,就像struts中的actionservlet,在JSF中是面向servlet的,網(wǎng)站.xml在中配置了整個servlet控制器,為了更好地分層、重用和減少依賴,MVC是可用的。m層接收并綁定用戶的數(shù)據(jù),V層顯示數(shù)據(jù),C層控制數(shù)據(jù)。
目前主流的開發(fā)模式是四層:頁面、動作和服務(wù)數(shù)據(jù)訪問層(DAO),頁面層用來顯示頁面,動作層用來捕獲用戶事件,調(diào)用服務(wù)層來處理業(yè)務(wù)邏輯。服務(wù)必須處理業(yè)務(wù)邏輯來添加和刪除數(shù)據(jù)庫,并拼接HQL語句,然后調(diào)用Dao層來操作數(shù)據(jù)庫,Hibernate完成Dao層。但是這樣,操作層就依賴于服務(wù)層。為了創(chuàng)建對服務(wù)接口的引用,服務(wù)層依賴于Dao層。也就是說,要實例化動作層的對象,至少要同時實例化一個服務(wù)層和至少一個Dao層。因此,spring的IOC可以工作并減少層之間的依賴性。每個層都被配置為spring的接口對象實例,以減少依賴性。