Webform下是怎麼實現MVC設計模式的

2022-06-09 10:16:36 字數 3755 閱讀 6728

1樓:匿名使用者

所謂mvc 是指三層式開發

即 表現層也就是常說的頁面/美觀/排版等使用者所看到最終結果的頁面邏輯層 這層是指進行頁面操作時候的各種邏輯**資料層 是指所有的對資料庫/資料的整理部分

2樓:匿名使用者

最好運用分檔案分模組來實現。

asp.net mvc模式與asp.net webform模式

3樓:匿名使用者

asp.net和asp.net相比而言,最大的有點在於所有的**都是純的html(相對而言,webform的容易生成冗餘的垃圾**(viewstate什麼自動儲存狀態的))。

同時mvc把**和檢視真正分開,這就意味著你的邏輯**可以保持不變,只要修改檢視介面然後設法顯示你的資料就可以了。而webform中,檢視和**是粘合的,結果就是你要修改檢視,**跟著修改,非常麻煩,容易出錯。快速上手mvc,建議看看蘇鵬老師的力作:

如何實現mvc模式

4樓:匿名使用者

最簡單的方法是使用struts或jsf等mvc的框架,本身就是一個實現。如果自己實現,比較複雜的就是要自己寫一個總控制器,接受所有使用者的請求,進行分發給其他servlet或直接進行頁面跳轉。不建議自己實現,建議使用一個mvc框架,然後搞明白他的生命週期和原理,再去看框架總控制器的源**,這樣比較好。

原理:jsp發展經歷了兩個模型時代,jsp模型一時代是把**都寫在jsp頁面上,使用者訪問jsp頁面時,jsp頁面來對資料庫進行操作並返回值到jsp頁面,這樣第一不好維護,第二安全性不高,第三**結構不清晰,第四重用性不高。於是就有了jsp模型二時代,人們將所有的頁面請求交給一個servlet控制器來接受,然後進行分發,由該servlet來決定呼叫其他servlet訪問資料庫還是進行頁面跳轉,這個servelt就是mvc中的c,struts中好像叫actionservlet,jsf中叫facesservelt,web.

xml中配置的就是總servlet控制器,為了更好的分層,重用,降低依賴性,就有了mvc,由m層接受和繫結使用者的資料,v層進行展現,c層進行控制。

目前主流的開發模式是四層開發模式:介面層(page)+動作處理層(action)+業務邏輯層(service)+資料訪問層(dao),page層用於展現頁面,action層用於捕獲使用者事件並呼叫service層處理業務邏輯,service要處理業務邏輯肯定就要對資料庫進行增刪改查,拼接hql語句,然後呼叫dao層對資料庫進行操作,hibernate完成的就是dao層。但是這樣一來action層對service層產生了依賴,因為要建立一個service介面的引用,service層對dao層產生了依賴,就是說例項化一個action層的物件,同時要至少例項化一個service層和至少例項化一個dao層,於是spring的ioc就可以起作用了,就可以降低各層之間的依賴。

將各層做為介面物件例項配置到spring中,降低依賴。

為什麼現在大多數開發使用mvc而不是用webform

5樓:匿名使用者

mvc模式是現在開發模式的一個主流,mvc這個框架耦合性低,重用性高,生命週期成本低,可維護性高等諸多優點,並且**簡潔,條理清晰,不過框架的設計需要花費大量的時間,所以並不適合中小型規模的應用程式,比webform要好用的多,總之,mvc框架是值得學習的,從mvc3開始到現在的mvc5已經成熟了,建議你學習學習此框架的內容。

webform和mvc的區別部落格園

6樓:匿名使用者

可以說各有優勢:mvc縱向切割了開發過程中的**,從伺服器到瀏覽器層層分離,層次之間耦合度很低,因為它是順著底層的開發脈絡進行封裝,所以有利於開發者對整個程式過程流轉的理解。但是mvc有一個非常大的缺點,這個缺點是和整個軟體發展思路相背離的,那就是它無法封裝、無法封裝所以無法被重用。

有誰看到過mvc下面的元件?有的只是一個個現成的案例,然後拿來修改。因為一個元件肯定牽涉到控制和顯示,但是mvc的開發這兩個層次是分離的。

mvc只適合輕量級的開發,桌面開發是極少用到mvc模式的。然而web開發恰恰就是輕量級,至今所有的web開發都是輕量級的,因為網路硬體條件的限制,不需要也無法做到非常複雜的邏輯。這也是mvc非常非常適合web開發的原因。

webform是微軟前面一套web開發的機制。它橫向切割了**,控制和顯示是封裝在一起的。它從開發者思維邏輯上而不是實際情況上對**進行封裝,開發webform容易上手的原因也就在此了,但這個不利於開發者對底層程式流轉機制的理解。

webform中view和controller是放在一起的,webform一出現後,隨之而來的是大量的元件誕生,這是mvc模式下看不到的。微軟的經驗之一是硬體發展很迅速。**的封裝是靠犧牲執行效率來提高開發效率,犧牲的執行效率通過提高硬體效能來解決。

但微軟在webform上犯了經驗主義的錯誤,這個經驗不適合網路硬體,網路硬體要考慮相容性而且是國家的基礎設施,更新的靈活性遠比單機要差。大量的元件因為硬體的瓶頸無法給webform帶來什麼優勢。在發展了幾年webform後,微軟覺得這樣下去不行,等到網路硬體發展起來不知道到猴年馬月了,所以就抄了一下成熟的mvc,通過entity framework做資料庫和物件的對映,很明顯,它是為了充當mvc中那個model。

通過mvc來控制和展示。

webform生產關係是比mvc先進的,但是它不適合現在的網路設施生產力,如果要適合說不定要10年後。webform和mvc很好的印證了生產關係必須適合生產力,即使強大如微軟也無法改變客觀規律。

asp.net中的三層架構是什麼意思?mvc設計模式是什麼?它們之間有關係嗎?

7樓:陳學陽

mvc和三層架構,是不一樣的。

三層架構中,dal(資料訪問層)、bll(業務邏輯層)、web層各司其職,意在職責分離。

mvc是 model-view-controller,嚴格說這三個加起來以後才是三層架構中的web層,也就是說,mvc把三層架構中的web層再度進行了分化,分成了控制器、檢視、實體三個部分,控制器完成頁面邏輯,通過實體來與介面層完成通話;而c層直接與三層中的bll進行對話。

所以, .net的三層結構中,並沒有action這個概念。

可以這樣說,如果深入理解了mvc,肯定是很容易理解asp.net的三層架構的。

struts2是如何實現mvc設計模式的?

8樓:

所有請求 action 處理,action 做為控制器 即c

資料儲存 一般交給hibernate 類似的pojo 及dao 處理,成為模型層,即m

顯示層,可以是jsp,freemark 等

9樓:匿名使用者

mvc = 模型、檢視、控制器

模型:這個一般不由struts來做

檢視:檢視也不算struts的強項,但是struts提供優秀的標籤來支援檢視的展示,利用標籤,struts可以將資料合理的展示給使用者

控制器:struts的重要功能,提供struts的過濾器,攔截使用者的請求,查詢struts配置檔案,為其匹配一個對應的action,這個action負責呼叫模型,獲得資料,然後對資料做部分處理,接著action再將處理後的資料,為其選擇一個檢視進行輸出

10樓:匿名使用者

formbean是m,tag是v,action是c

手機怎麼實現無線充電,手機是怎麼實現無線充電的?

回答親,您好 稍等一下正在為您查詢 5 這樣就完成了,同樣可以進行無線充電了。親,以上僅供參考 更多2條 手機是怎麼實現無線充電的?無線充電技術正被越來越多的手機所應用。目前的大部分充電器,例如ipad和iphone,都通過金屬電線直接接觸的方式,給裝置內建電池充電。相比之下,無線充電有著方便 安全...

iphone是怎麼實現指紋識別的,原理是什麼

原理 首先,感測器是採用的電容觸控技術,電容技術核心其實是依靠人類 細胞具備一定量的電阻,的組織結構可以形成溝壑,當兩者擠壓在一起時就可以測量到其中的變化,而且這種變化基本上在同一個指紋上是不會變的。額,可以加一個問題麼?誰給解釋一下用鼻子也能設定指紋鎖,可以錄入,並且不同鼻子解不了 直接服了,這啥...

《我們的愛》mv裡是電視劇《鬥魚》,但《鬥魚》怎麼沒有桂綸

不是啊,你搞錯了,那個只是個mv 並不是什麼電影或者電視劇,只是一個片段,只是那個mv 裡的 男主角正好是鬥魚裡的楊勳奇 沒有很正常啊。為啥子要有啊。飛兒樂隊 我們的愛 是哪部電視劇的插曲 我們的愛 不是哪部電視劇的插曲哦,是他們第一張 中最紅的歌曲。飛兒樂團只有 lydia 是偶像劇 鬥魚 的片尾...