0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MVC設(shè)計模式,JavaWeb與MVC

Dbwd_Imgtec ? 來源:未知 ? 作者:李倩 ? 2018-07-24 15:35 ? 次閱讀

1、MVC設(shè)計模式:

如下圖所示,MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。MVC模式最早為Trygve Reenskaug提出,為施樂帕羅奧多研究中心(Xerox PARC)的Smalltalk語言發(fā)明的一種軟件設(shè)計模式。MVC可對程序的后期維護(hù)和擴(kuò)展提供了方便,并且使程序某些部分的重用提供了方便。而且MVC也使程序簡化,更加直觀。

控制器Controller:對請求進(jìn)行處理,負(fù)責(zé)請求轉(zhuǎn)發(fā);

視圖View:界面設(shè)計人員進(jìn)行圖形界面設(shè)計;

模型Model:程序編寫程序應(yīng)用的功能(實現(xiàn)算法等等)、數(shù)據(jù)庫管理;

注意,MVC不是Java的東西,幾乎現(xiàn)在所有B/S結(jié)構(gòu)的軟件都采用了MVC設(shè)計模式。但是要注意,MVC在B/S結(jié)構(gòu)軟件并沒有完全實現(xiàn),例如在我們今后的B/S軟件中并不會有事件驅(qū)動!

2、JavaWeb與MVC

JavaWeb的經(jīng)歷了JSP Model1、JSP Model1二代、JSP Model2三個時期。

2.1JSPModel1第一代

JSP Model1是JavaWeb早期的模型,它適合小型Web項目,開發(fā)成本低!Model1第一代時期,服務(wù)器端只有JSP頁面,所有的操作都在JSP頁面中,連訪問數(shù)據(jù)庫的API也在JSP頁面中完成。也就是說,所有的東西都耦合在一起,對后期的維護(hù)和擴(kuò)展極為不利。

2.2JSPModel1第二代

JSP Model1第二代有所改進(jìn),把業(yè)務(wù)邏輯的內(nèi)容放到了JavaBean中,而JSP頁面負(fù)責(zé)顯示以及請求調(diào)度的工作。雖然第二代比第一代好了些,但還讓JSP做了過多的工作,JSP中把視圖工作和請求調(diào)度(控制器)的工作耦合在一起了。

2.3JSPModel2

JSP Model2模式已經(jīng)可以清晰的看到MVC完整的結(jié)構(gòu)了。

JSP:視圖層,用來與用戶打交道。負(fù)責(zé)接收用來的數(shù)據(jù),以及顯示數(shù)據(jù)給用戶;

Servlet:控制層,負(fù)責(zé)找到合適的模型對象來處理業(yè)務(wù)邏輯,轉(zhuǎn)發(fā)到合適的視圖;

JavaBean:模型層,完成具體的業(yè)務(wù)工作,例如:開啟、轉(zhuǎn)賬等。

JSP Model2適合多人合作開發(fā)大型的Web項目,各司其職,互不干涉,有利于開發(fā)中的分工,有利于組件的重用。但是,Web項目的開發(fā)難度加大,同時對開發(fā)人員的技術(shù)要求也提高了。

3、JavaWeb經(jīng)典三層框架

我們常說的三層框架是由JavaWeb提出的,也就是說這是JavaWeb獨有的!

所謂三層是表述層(WEB層)、業(yè)務(wù)邏輯層(Business Logic),以及數(shù)據(jù)訪問層(Data Access)。

WEB層:包含JSP和Servlet等與WEB相關(guān)的內(nèi)容;

業(yè)務(wù)層:業(yè)務(wù)層中不包含JavaWeb API,它只關(guān)心業(yè)務(wù)邏輯;

數(shù)據(jù)層:封裝了對數(shù)據(jù)庫的訪問細(xì)節(jié);

注意,在業(yè)務(wù)層中不能出現(xiàn)JavaWebAPI,例如request、response等。也就是說,業(yè)務(wù)層代碼是可重用的,甚至可以應(yīng)用到非Web環(huán)境中。業(yè)務(wù)層的每個方法可以理解成一個萬能,例如轉(zhuǎn)賬業(yè)務(wù)方法。業(yè)務(wù)層依賴數(shù)據(jù)層,而Web層依賴業(yè)務(wù)層!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15885

    瀏覽量

    175368
  • MVC
    MVC
    +關(guān)注

    關(guān)注

    0

    文章

    73

    瀏覽量

    13823

原文標(biāo)題:MVC 設(shè)計模式概述

文章出處:【微信號:Imgtec,微信公眾號:Imagination Tech】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    MVC框架

    存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。模型-視圖-控制器(MVC)是Xerox PARC在二十世紀(jì)八十年代為編程語言Smalltalk-80發(fā)明的一種軟件設(shè)計模式,已被廣泛
    發(fā)表于 06-22 20:30

    Net系列MVC的使用

    2018-04-08 開胃學(xué)習(xí)Net 系列 - MVC作業(yè)
    發(fā)表于 03-27 15:35

    Spring MVC練手項目

    初識 Spring MVC——練手小項目
    發(fā)表于 09-17 08:41

    MVC架構(gòu)你知道多少

    一、MVC 介紹MVC 是Model-View-Controller 的縮寫,表示模型-視圖-控制器的軟件設(shè)計模式,最早由Xerox PARC 在二十世紀(jì)八十年代為編程語言Smalltalk 發(fā)明
    發(fā)表于 09-17 09:05

    基于Enhydra的MVC模式Web應(yīng)用解決方案

        基于MVC 開發(fā)模式被證明是有效的處理方法之一,本文首先分析了MVC、三層結(jié)構(gòu)及其關(guān)系,研究了Enhydra 技術(shù)的三層體系框架及其優(yōu)勢。然后結(jié)合實例,給出了一個
    發(fā)表于 09-04 09:43 ?10次下載

    基于MVC模式的WEB應(yīng)用框架

    MVC模式是目前WEB應(yīng)用系統(tǒng)設(shè)計中較為流行的一種,它在J2EE應(yīng)用平臺上的表現(xiàn)使其成為眾多設(shè)計者的首選。其中,基于MVC模式的Struts框架使用最為廣泛,論文首先討論了它的內(nèi)部實
    發(fā)表于 12-29 17:13 ?12次下載

    MVC模式在教學(xué)考評系統(tǒng)中的應(yīng)用

    通過對MVC 設(shè)計模式進(jìn)行的分析,探索了基于MVC 模式開發(fā)Web 應(yīng)用程序的優(yōu)缺點,提出基于MVC
    發(fā)表于 10-14 16:10 ?0次下載

    MVC框架實例—Spring MVC配置

    本文旨在讓您在使用Spring MVC框架配置完成日常工作的時候更加輕松。根據(jù)Spring MVC框架配置,為基于本技術(shù)開發(fā)的項目提供一系列的解決方案。
    發(fā)表于 12-14 17:37 ?3155次閱讀

    基于MVC模式的地圖控件的設(shè)計

    MVC模式增加了程序的可維護(hù)性、可擴(kuò)展性。文中在研究、分析MVC設(shè)計模式思想的基礎(chǔ)上,應(yīng)用MVC設(shè)計模式
    發(fā)表于 02-22 11:08 ?23次下載
    基于<b class='flag-5'>MVC</b><b class='flag-5'>模式</b>的地圖控件的設(shè)計

    02_MVC設(shè)計模式_上課源碼

    jsp-mvc設(shè)計模式
    發(fā)表于 07-10 11:02 ?0次下載

    mvc模式的優(yōu)缺點

    MVC模式的優(yōu)點:各施其職,互不干涉在MVC模式中,三個層各施其職,所以如果一旦哪一層的需求發(fā)生了變化,就只需要更改相應(yīng)的層中的代碼而不會影響到其它層中的代碼。
    發(fā)表于 11-17 16:42 ?3866次閱讀
    <b class='flag-5'>mvc</b><b class='flag-5'>模式</b>的優(yōu)缺點

    MVC架構(gòu)模式為什么悄然消失了

    MVC這門技術(shù)伴隨著我的成長,感情和Java一樣深厚,但是,最近兩年卻不得不和MVC說再見了。是的,不是Struts沒了,也不是SpringMVC沒了,而是MVC這種架構(gòu)模式被淘汰了。
    的頭像 發(fā)表于 04-12 19:18 ?5231次閱讀

    javaweb三層架構(gòu)和mvc架構(gòu)

    JavaWeb三層架構(gòu)和MVC架構(gòu)是當(dāng)前Web開發(fā)領(lǐng)域中常用的兩種架構(gòu)模式。 一、JavaWeb三層架構(gòu) JavaWeb三層架構(gòu)是將一個We
    的頭像 發(fā)表于 11-22 16:41 ?1283次閱讀

    javaWebMVC三層架構(gòu)的原理

    JavaWebMVC三層架構(gòu)是一種將應(yīng)用程序分為三個主要組件的軟件設(shè)計模式,即模型(Model)、視圖(View)和控制器(Controller)。這種架構(gòu)的目標(biāo)是將應(yīng)用程序代碼分離,以提高
    的頭像 發(fā)表于 12-03 11:48 ?805次閱讀

    Spring MVC的工作原理

    Spring MVC是一種基于Java的Web應(yīng)用程序框架,它采用了Model-View-Controller(MVC)設(shè)計模式來分離應(yīng)用程序的不同方面。Spring MVC的工作原理
    的頭像 發(fā)表于 12-03 11:49 ?635次閱讀