基于BS模式的同學(xué)錄系統(tǒng)文獻(xiàn)綜述_第1頁(yè)
基于BS模式的同學(xué)錄系統(tǒng)文獻(xiàn)綜述_第2頁(yè)
基于BS模式的同學(xué)錄系統(tǒng)文獻(xiàn)綜述_第3頁(yè)
基于BS模式的同學(xué)錄系統(tǒng)文獻(xiàn)綜述_第4頁(yè)
基于BS模式的同學(xué)錄系統(tǒng)文獻(xiàn)綜述_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于BS模式的同學(xué)錄系統(tǒng)文獻(xiàn)綜述隨著Internet成為人們生活、工作、學(xué)習(xí)不可或缺的一部分,Web技術(shù)已經(jīng)不再局限于單純地提供信息,而是日益成為一個(gè)操作平臺(tái),為用戶提供強(qiáng)大的服務(wù)功能,如網(wǎng)上電子商務(wù)、社會(huì)信息數(shù)據(jù)庫(kù)等。網(wǎng)絡(luò)實(shí)現(xiàn)了遠(yuǎn)程通訊,人們能夠通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行電子郵件發(fā)送,網(wǎng)絡(luò)會(huì)議召開(kāi),網(wǎng)上購(gòu)物,網(wǎng)上教育。網(wǎng)絡(luò)巨大的潛力值得進(jìn)一步的開(kāi)發(fā)與探索。因此,基于B/S體系架構(gòu)創(chuàng)建這個(gè)校友網(wǎng)站,是緊跟行業(yè)發(fā)展,滿足人們生活、學(xué)習(xí)的需要。B/S模型及其優(yōu)點(diǎn)B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),客戶機(jī)上只要安裝一個(gè)瀏覽器(Browser),如NetscapeNavigator或InternetExplorer,服務(wù)器安裝Oracle、Sybase、Informix或SQLServer等數(shù)據(jù)庫(kù)。瀏覽器通過(guò)WebServer同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互。這種結(jié)構(gòu)的一個(gè)重要的特點(diǎn)是,用戶可以完全不需要安裝客戶端軟件,當(dāng)然也不需要擔(dān)心任何軟件升級(jí)和不兼容等任何客戶端所遇到的問(wèn)題。B/S模型是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者說(shuō)是改進(jìn)的結(jié)構(gòu)。用戶界面完全通過(guò)瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),形成三層結(jié)構(gòu),是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。兩層技術(shù)模型(Two-TierArchitecture)是指客戶機(jī)直接與服務(wù)器交流,沒(méi)有其他服務(wù)介入的技術(shù)模型。對(duì)用戶量在12—100的局域網(wǎng)環(huán)境中,兩層模型的確是個(gè)不錯(cuò)的方案。由于該模型中,所有的用戶連接都是被保持的,也就是說(shuō)即使在空閑狀態(tài),連接依然存在。所以,用戶的并發(fā)請(qǐng)求數(shù)量有限的。為了解決這個(gè)限制,使得成千上萬(wàn)的用戶可以被無(wú)顧慮地添加,我們最好選用三層模型。B/S最大的優(yōu)點(diǎn)就是可以在任何地方進(jìn)行操作而不用安裝任何專門(mén)的軟件。只要有一臺(tái)能上網(wǎng)的電腦就能使用,客戶端零維護(hù)。系統(tǒng)的擴(kuò)展非常容易,只要能上網(wǎng),再由系統(tǒng)管理員分配一個(gè)用戶名和密碼,就可以使用了。甚至可以在線申請(qǐng),通過(guò)公司內(nèi)部的安全認(rèn)證(如CA證書(shū))后,不需要人的參與,系統(tǒng)可以自動(dòng)分配給用戶一個(gè)賬號(hào)進(jìn)入系統(tǒng)。相比之下,B/S模型的優(yōu)點(diǎn)顯而易見(jiàn),更適合這個(gè)網(wǎng)站的構(gòu)建,有利于網(wǎng)站的維護(hù)和擴(kuò)充。幾乎沒(méi)有限制的客戶端訪問(wèn)和極其簡(jiǎn)單化的應(yīng)用程序部署和管理是B/S模型的優(yōu)勢(shì)所在。它和C/S模型比較優(yōu)點(diǎn)極為突出。JSP技術(shù)發(fā)展背景Web技術(shù)的迅猛發(fā)展正推動(dòng)Internet上信息服務(wù)類的進(jìn)步。WWW服務(wù)的基礎(chǔ)是HTML語(yǔ)言。這個(gè)系統(tǒng)模塊中用到的JSP技術(shù)是在HTML語(yǔ)言的基礎(chǔ)上使用腳本語(yǔ)言對(duì)網(wǎng)頁(yè)的對(duì)象模型進(jìn)行編程。JSP全稱JavaServerPages,它是由SunMicrosystems公司提出、許多公司參與建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。它誕生在1999年6月1日。目前國(guó)內(nèi)外已經(jīng)在廣泛地使用JSP。隨著JAVA語(yǔ)言得到普及,越來(lái)越多的公司開(kāi)始關(guān)注JSP的前景。傳統(tǒng)的動(dòng)態(tài)網(wǎng)頁(yè)制作包括CGI、ASP、JSP三種,而JSP具有明顯的優(yōu)勢(shì)。使用CGI-BINJ接口是一個(gè)最早的動(dòng)態(tài)WEB頁(yè)面問(wèn)題的解決方案。缺點(diǎn),CGI程序必須從CGI接口讀入一長(zhǎng)串的字符串,再?gòu)淖址腥〉盟枰臄?shù)據(jù)并加以處理。過(guò)程十分繁瑣。另一個(gè)缺點(diǎn),除了Perl是解釋語(yǔ)言外,其他都是編譯式的語(yǔ)言。每次修改后,都必須重新編譯一次,這給開(kāi)發(fā)人員帶來(lái)麻煩,增加了工作量。ASP和JSP都能取代CGI使網(wǎng)站建設(shè)和發(fā)展變得簡(jiǎn)單快捷。盡管JSP技術(shù)和ASP在許多方面都有相似的,但仍然存在很多不同之處,其中最本質(zhì)上的區(qū)別在于:兩者是來(lái)源于不同的技術(shù)規(guī)范組織,其實(shí)現(xiàn)的基礎(chǔ),WEB服務(wù)器平臺(tái)要求不相同。1)作為Java平臺(tái)的一部分,JSP擁有Java編程語(yǔ)言“一次編寫(xiě),各處運(yùn)行”的特點(diǎn)。一次寫(xiě)入,之后,可以運(yùn)行在任何具有符合JavaTM語(yǔ)法結(jié)構(gòu)的環(huán)境。取代之過(guò)去單一平臺(tái)開(kāi)發(fā)。ASP主要工作環(huán)境是微軟的IIS應(yīng)用程序結(jié)構(gòu),又因Activex對(duì)象具有平臺(tái)特性,所以ASP技術(shù)不能很容易地實(shí)現(xiàn)在跨平臺(tái)的WEB服務(wù)器的工作。2)從開(kāi)發(fā)人員的角度來(lái)看其區(qū)別在于:ASP僅支持組件對(duì)象模型COM,而JSP技術(shù)提供的組件都是基于JavabeansTM技術(shù)或JSP標(biāo)簽庫(kù)。3)JSP標(biāo)簽可擴(kuò)充性。JSP技術(shù)能夠使用開(kāi)發(fā)者擴(kuò)展JSP標(biāo)簽,JSP開(kāi)發(fā)者能定制標(biāo)簽庫(kù),減少對(duì)腳本語(yǔ)言的依賴。4)生成可重用的組件。JSP基于組件的技術(shù)方法加速了總體開(kāi)發(fā)過(guò)程。JSP組件(Javabeans,或定制的JSP標(biāo)簽)是跨平臺(tái)可重用的。Javabeans組件可以訪問(wèn)數(shù)據(jù)庫(kù),并能以分布式系統(tǒng)模式工作于UNIX和WINDOWS平臺(tái)。5)易于維護(hù)性?;贘SP技術(shù)的應(yīng)用程序比基于ASP的應(yīng)用程序易于維護(hù)和管理。JSP突出的組件技術(shù)使修改內(nèi)容而不影響邏輯或修改邏輯而不影響內(nèi)容變得很容易實(shí)現(xiàn)。如上的比較不難看出,JSP技術(shù)編寫(xiě)的程序運(yùn)用要更加靈活,可擴(kuò)展性更強(qiáng)。MVC框架MVC模式是"Model-View-Controller"的縮寫(xiě),中文翻譯為"模式-視圖-控制器"。MVC應(yīng)用程序總是由這三個(gè)部分組成。Event(事件)導(dǎo)致Controller改變Model或View,或者同時(shí)改變兩者。只要Controller改變了Models的數(shù)據(jù)或者屬性,所有依賴的View都會(huì)自動(dòng)更新。類似的,只要Controller改變了View,View會(huì)從潛在的Model中獲取數(shù)據(jù)來(lái)刷新自己。MVC與J2EE架構(gòu)的對(duì)應(yīng)關(guān)系是:View處于WebTier或者說(shuō)是ClientTier,通常是JSP/Servlet,即頁(yè)面顯示部分。Controller也處于WebTier,通常用Servlet來(lái)實(shí)現(xiàn),即頁(yè)面顯示的邏輯部分實(shí)現(xiàn)。Model處于MiddleTier,通常用服務(wù)端的javaBean或者EJB實(shí)現(xiàn),即業(yè)務(wù)邏輯部分的實(shí)現(xiàn)。

一、MVC設(shè)計(jì)思想

MVC英文即Model-View-Controller,即把一個(gè)應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成三個(gè)層——模型層、視圖層、控制層。

視圖(View):代表用戶交互界面,對(duì)于Web應(yīng)用來(lái)說(shuō),可以概括為HTML界面,但有可能為XHTML、XML和Applet。隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。一個(gè)應(yīng)用可能有很多不同的視圖,MVC設(shè)計(jì)模式對(duì)于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請(qǐng)求,而不包括在視圖上的業(yè)務(wù)流程的處理。業(yè)務(wù)流程的處理交予模型(Model)處理。比如一個(gè)訂單的視圖只接受來(lái)自模型的數(shù)據(jù)并顯示給用戶,以及將用戶界面的輸入數(shù)據(jù)和請(qǐng)求傳遞給控制和模型。

模型(Model):就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。業(yè)務(wù)流程的處理過(guò)程對(duì)其它層來(lái)說(shuō)是黑箱操作,模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的處理結(jié)果。業(yè)務(wù)模型的設(shè)計(jì)可以說(shuō)是MVC最主要的核心。目前流行的EJB模型就是一個(gè)典型的應(yīng)用例子,它從應(yīng)用技術(shù)實(shí)現(xiàn)的角度對(duì)模型做了進(jìn)一步的劃分,以便充分利用現(xiàn)有的組件,但它不能作為應(yīng)用設(shè)計(jì)模型的框架。它僅僅告訴你按這種模型設(shè)計(jì)就可以利用某些技術(shù)組件,從而減少了技術(shù)上的困難。對(duì)一個(gè)開(kāi)發(fā)者來(lái)說(shuō),就可以專注于業(yè)務(wù)模型的設(shè)計(jì)。MVC設(shè)計(jì)模式告訴我們,把應(yīng)用的模型按一定的規(guī)則抽取出來(lái),抽取的層次很重要,這也是判斷開(kāi)發(fā)人員是否優(yōu)秀的設(shè)計(jì)依據(jù)。抽象與具體不能隔得太遠(yuǎn),也不能太近。MVC并沒(méi)有提供模型的設(shè)計(jì)方法,而只告訴你應(yīng)該組織管理這些模型,以便于模型的重構(gòu)和提高重用性。我們可以用對(duì)象編程來(lái)做比喻,MVC定義了一個(gè)頂級(jí)類,告訴它的子類你只能做這些,但沒(méi)法限制你能做這些。這點(diǎn)對(duì)編程的開(kāi)發(fā)人員非常重要。

業(yè)務(wù)模型還有一個(gè)很重要的模型那就是數(shù)據(jù)模型。數(shù)據(jù)模型主要指實(shí)體對(duì)象的數(shù)據(jù)保存(持續(xù)化)。比如將一張訂單保存到數(shù)據(jù)庫(kù),從數(shù)據(jù)庫(kù)獲取訂單。我們可以將這個(gè)模型單獨(dú)列出,所有有關(guān)數(shù)據(jù)庫(kù)的操作只限制在該模型中。

控制(Controller):可以理解為從用戶接收請(qǐng)求,將模型與視圖匹配在一起,共同完成用戶的請(qǐng)求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請(qǐng)求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。例如,用戶點(diǎn)擊一個(gè)連接,控制層接受請(qǐng)求后,并不處理業(yè)務(wù)信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個(gè)模型可能對(duì)應(yīng)多個(gè)視圖,一個(gè)視圖可能對(duì)應(yīng)多個(gè)模型。

模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖。如果用戶通過(guò)某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無(wú)論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會(huì)將變化通知所有的視圖,導(dǎo)致顯示的更新。這實(shí)際上是一種模型的變化-傳播機(jī)制。模型、視圖、控制器三者之間的關(guān)系和各自的主要功能,如圖1所示。

二、MVC設(shè)計(jì)模式的實(shí)現(xiàn)

MVC是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開(kāi)。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。

視圖

視圖是用戶看到并與之交互的界面。對(duì)老式的Web應(yīng)用程序來(lái)說(shuō),視圖就是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括MacromediaFlash和象XHTML,XML/XSL,WML等一些標(biāo)識(shí)語(yǔ)言和Webservices.

如何處理應(yīng)用程序的界面變得越來(lái)越有挑戰(zhàn)性。MVC一個(gè)大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。在視圖中其實(shí)沒(méi)有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲(chǔ)的還是一個(gè)雇員列表,作為視圖來(lái)講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。

模型

模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。例如它可能用象EJBs和ColdFusionComponents這樣的構(gòu)件對(duì)象來(lái)處理數(shù)據(jù)庫(kù)。被模型返回的數(shù)據(jù)是中立的,就是說(shuō)模型與數(shù)據(jù)格式無(wú)關(guān),這樣一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫(xiě)一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。

控制器

控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁(yè)面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后用確定用哪個(gè)視圖來(lái)顯示模型處理返回的數(shù)據(jù)。

總結(jié)MVC的處理過(guò)程,首先控制器接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來(lái)進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來(lái)處理用戶的請(qǐng)求并返回?cái)?shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過(guò)表示層呈現(xiàn)給用戶。

三、MVC的優(yōu)點(diǎn)

大部分Web應(yīng)用程序都是用像ASP,PHP,或者CFML這樣的過(guò)程化語(yǔ)言來(lái)創(chuàng)建的。它們將像數(shù)據(jù)庫(kù)查詢語(yǔ)句這樣的數(shù)據(jù)層代碼和像HTML這樣的表示層代碼混在一起。經(jīng)驗(yàn)比較豐富的開(kāi)發(fā)者會(huì)將數(shù)據(jù)從表示層分離開(kāi)來(lái),但這通常不是很容易做到的,它需要精心的計(jì)劃和不斷的嘗試。MVC從根本上強(qiáng)制性的將它們分開(kāi)。盡管構(gòu)造MVC應(yīng)用程序需要一些額外的工作,但是它給我們帶來(lái)的好處是無(wú)庸質(zhì)疑的。

首先,最重要的一點(diǎn)是多個(gè)視圖能共享一個(gè)模型,正如我所提及的,現(xiàn)在需要用越來(lái)越多的方式來(lái)訪問(wèn)你的應(yīng)用程序。對(duì)此,其中一個(gè)解決之道是使用MVC,無(wú)論你的用戶想要Flash界面或是WAP界面;用一個(gè)模型就能處理它們。由于你已經(jīng)將數(shù)據(jù)和業(yè)務(wù)規(guī)則從表示層分開(kāi),所以你可以最大化的重用你的代碼了。

由于模型返回的數(shù)據(jù)沒(méi)有進(jìn)行格式化,所以同樣的構(gòu)件能被不同界面使用。例如,很多數(shù)據(jù)可能用HTML來(lái)表示,但是它們也有可能要用MacromediaFlash和WAP來(lái)表示。模型也有狀態(tài)管理和數(shù)據(jù)持久性處理的功能,例如,基于會(huì)話的購(gòu)物車和電子商務(wù)過(guò)程也能被Flash網(wǎng)站或者無(wú)線聯(lián)網(wǎng)的應(yīng)用程序所重用。

因?yàn)槟P褪亲园?,并且與控制器和視圖相分離,所以很容易改變你的應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。如果你想把你的數(shù)據(jù)庫(kù)從MySQL移植到Oracle,或者改變你的基于RDBMS數(shù)據(jù)源到LDAP,只需改變你的模型即可。一旦你正確的實(shí)現(xiàn)了模型,不管你的數(shù)據(jù)來(lái)自數(shù)據(jù)庫(kù)或是LDAP服務(wù)器,視圖將會(huì)正確的顯示它們。由于運(yùn)用MVC的應(yīng)用程序的三個(gè)部件是相互對(duì)立,改變其中一個(gè)不會(huì)影響其它兩個(gè),所以依據(jù)這種設(shè)計(jì)思想你能構(gòu)造良好的松偶合的構(gòu)件。

控制器的也提供了一個(gè)好處,就是可以使用控制器來(lái)聯(lián)接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構(gòu)造應(yīng)用程序提供強(qiáng)有力的手段。給定一些可重用的模型和視圖,控制器可以根據(jù)用戶的需求選擇模型進(jìn)行處理,然后選擇視圖將處理結(jié)果顯示給用戶。

四、MVC的不足

MVC的不足體現(xiàn)在以下幾個(gè)方面:

(1)增加了系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)的復(fù)雜性。對(duì)于簡(jiǎn)單的界面,嚴(yán)格遵循MVC,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論