偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺談Java Web經(jīng)典三層架構(gòu)和MVC框架模式

開發(fā) 架構(gòu)
首先我們需要知道MVC模式并不是javaweb項(xiàng)目中獨(dú)有的,MVC是一種軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個(gè)基本部分:模型(Model)、視圖(View)和控制器(Controller),即為MVC。

 一、MVC設(shè)計(jì)模式

1.MVC的概念

首先我們需要知道MVC模式并不是javaweb項(xiàng)目中獨(dú)有的,MVC是一種軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個(gè)基本部分:模型(Model)、視圖(View)和控制器(Controller),即為MVC。它是一種軟件設(shè)計(jì)的典范,最早為Trygve Reenskaug提出,為施樂帕羅奧多研究中心(Xerox PARC)的Smalltalk語言發(fā)明的一種軟件設(shè)計(jì)模式。

[[271839]]

2.MVC的詳解

雖然MVC并不是Java當(dāng)中獨(dú)有的,但是現(xiàn)在幾乎所有的B/S的架構(gòu)都采用了MVC框架模式,但是MVC在B/S架構(gòu)中并沒有完全地實(shí)現(xiàn),其實(shí)我們根本不需要掌握未實(shí)現(xiàn)的部分。

·控制器Controller:控制器即是控制請(qǐng)求的處理邏輯,對(duì)請(qǐng)求進(jìn)行處理,負(fù)責(zé)請(qǐng) 求轉(zhuǎn)發(fā);

·視圖View:視圖即是用戶看到并與之交互的界面,比如HTML(靜態(tài)資源),JSP(動(dòng)態(tài)資源)等等。

·模型Model:模型代表著一種企業(yè)規(guī)范,就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的規(guī)定。業(yè)務(wù)流程的處理過程對(duì)其他層來說是不透明的,模型接受視圖數(shù)據(jù)的請(qǐng)求,并返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計(jì)可以說是MVC的核心。

3.MVC模式的用武之地

MVC模式被廣泛用于Java的各種框架中,比如Struts2、Spring MVC等等都用到了這種思想。

Struts2是基于MVC的輕量級(jí)的web應(yīng)用框架?;贛VC,說明基于Struts2開發(fā)的Web應(yīng)用自然就能實(shí)現(xiàn)MVC,也說明Struts2著力于在MVC的各個(gè)部分為我們的開發(fā)提供相應(yīng)幫助。

二、Javaweb經(jīng)典三層架構(gòu)

1.Javaweb經(jīng)歷了三個(gè)時(shí)期

①JSP Model1第一代

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

淺談Javaweb經(jīng)典三層架構(gòu)和MVC框架模式

②JSP Model1第二代

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

淺談Javaweb經(jīng)典三層架構(gòu)和MVC框架模式

③JSP Model2

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

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

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

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

淺談Javaweb經(jīng)典三層架構(gòu)和MVC框架模式

這就是javaweb經(jīng)歷的三個(gè)年代,JSP Model2適合多人合作開發(fā)大型的Web項(xiàng)目,各司其職,互不干涉,有利于開發(fā)中的分工,有利于組件的重用。但是,Web項(xiàng)目的開發(fā)難度加大,同時(shí)對(duì)開發(fā)人員的技術(shù)要求也提高了。

2.JavaWeb經(jīng)典三層框架

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

所謂三層是表述層(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ù)層:封裝了對(duì)數(shù)據(jù)庫的訪問細(xì)節(jié);

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

淺談Javaweb經(jīng)典三層架構(gòu)和MVC框架模式

注:網(wǎng)上很多人在討論MVC究竟是一種框架模式還是一種設(shè)計(jì)模式(百度百科中強(qiáng)行解釋其為一種框架模式而不是一種設(shè)計(jì)模式),雖然Java中的23種設(shè)計(jì)模式里并沒有MVC,但是我認(rèn)為討論這個(gè)問題沒有太大的必要。我們大可將他作為一種思想,我們需要做的僅僅是理解它,應(yīng)用它,掌握其中的思想,這才是我們需要做的。

 

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2009-04-30 09:15:25

三層結(jié)構(gòu)MVC架構(gòu)

2009-07-28 15:08:50

MVC三層架構(gòu)實(shí)例

2009-04-30 15:56:50

三層架構(gòu)MVCMVP

2009-09-23 17:29:54

三層框架

2012-02-07 10:40:13

MVCJava

2015-07-02 10:57:11

General框架架構(gòu)開發(fā)

2012-02-03 09:44:33

.NET

2011-04-19 13:53:41

三層架構(gòu)

2009-04-21 11:27:52

MVCJSPJDBC

2009-05-06 09:40:04

LINQWEB開發(fā)構(gòu)架

2009-08-26 18:20:42

三層架構(gòu)

2013-01-09 11:00:20

架構(gòu)開發(fā)三層架構(gòu).NET架構(gòu)

2009-07-28 17:25:14

ASP.NET三層結(jié)構(gòu)

2016-12-19 11:17:48

架構(gòu) MVC

2011-08-08 14:14:03

架構(gòu)

2009-07-22 13:24:24

ASP.NET MVC

2018-10-31 14:32:53

數(shù)據(jù)中心網(wǎng)絡(luò)架構(gòu)

2018-03-08 15:30:31

超融合架構(gòu)傳統(tǒng)三層架構(gòu)

2018-05-24 11:38:17

2018-04-24 08:47:43

超融合HCI數(shù)據(jù)中心
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)