JAVA思想外文翻譯畢業(yè)設(shè)計(jì)11_第1頁(yè)
JAVA思想外文翻譯畢業(yè)設(shè)計(jì)11_第2頁(yè)
JAVA思想外文翻譯畢業(yè)設(shè)計(jì)11_第3頁(yè)
JAVA思想外文翻譯畢業(yè)設(shè)計(jì)11_第4頁(yè)
JAVA思想外文翻譯畢業(yè)設(shè)計(jì)11_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

文獻(xiàn)來(lái)源:BruceEckel.ThinkinginJava[J].PearsonHigherIsiaEducation,2006-2-20.Java編程思想(Java和因特網(wǎng))既然Java不過(guò)另一種類型的程序設(shè)計(jì)語(yǔ)言,大家可能會(huì)奇怪它為什么值得如此重視,為什么還有這么多的人認(rèn)為它是計(jì)算機(jī)程序設(shè)計(jì)的一個(gè)里程碑呢?如果您來(lái)自一個(gè)傳統(tǒng)的程序設(shè)計(jì)背景,那么答案在剛開始的時(shí)候并不是很明顯。Java除了可解決傳統(tǒng)的程序設(shè)計(jì)問(wèn)題以外,還能解決WorldWideWeb(萬(wàn)維網(wǎng))上的編程問(wèn)題。1、客戶端編程Web最初采用的“服務(wù)器-瀏覽器”方案可提供交互式內(nèi)容,但這種交互能力完全由服務(wù)器提供,為服務(wù)器和因特網(wǎng)帶來(lái)了不小的負(fù)擔(dān)。服務(wù)器一般為客戶瀏覽器產(chǎn)生靜態(tài)網(wǎng)頁(yè),由后者簡(jiǎn)單地解釋并顯示出來(lái)。基本HTML語(yǔ)言提供了簡(jiǎn)單的數(shù)據(jù)收集機(jī)制:文字輸入框、復(fù)選框、單選鈕、列表以與下拉列表等,另外還有一個(gè)按鈕,只能由程序規(guī)定重新設(shè)置表單中的數(shù)據(jù),以便回傳給服務(wù)器。用戶提交的信息通過(guò)所有Web服務(wù)器均能支持的“通用網(wǎng)關(guān)接口”(CGI)回傳到服務(wù)器。包含在提交數(shù)據(jù)中的文字指示CGI該如何操作。最常見(jiàn)的行動(dòng)是運(yùn)行位于服務(wù)器的一個(gè)程序。那個(gè)程序一般保存在一個(gè)名為“cgi-bin”的目錄中(按下Web頁(yè)內(nèi)的一個(gè)按鈕時(shí),請(qǐng)注意一下瀏覽器頂部的地址窗,經(jīng)常都能發(fā)現(xiàn)“cgi-bin”的字樣)。大多數(shù)語(yǔ)言都可用來(lái)編制這些程序,但其中最常見(jiàn)的是Perl。這是由于Perl是專為文字的處理與解釋而設(shè)計(jì)的,所以能在任何服務(wù)器上安裝和使用,無(wú)論采用的處理器或操作系統(tǒng)是什么。2、腳本編制語(yǔ)言插件造成了腳本編制語(yǔ)言的爆炸性增長(zhǎng)。通過(guò)這種腳本語(yǔ)言,可將用于自己客戶端程序的源碼直接插入HTML頁(yè),而對(duì)那種語(yǔ)言進(jìn)行解釋的插件會(huì)在HTML頁(yè)顯示的時(shí)候自動(dòng)激活。腳本語(yǔ)言一般都傾向于盡量簡(jiǎn)化,易于理解。而且由于它們是從屬于HTML頁(yè)的一些簡(jiǎn)單正文,所以只需向服務(wù)器發(fā)出對(duì)那個(gè)頁(yè)的一次請(qǐng)求,即可非??斓剌d入。缺點(diǎn)是我們的代碼全部暴露在人們面前。另一方面,由于通常不用腳本編制語(yǔ)言做過(guò)分復(fù)雜的事情,所以這個(gè)問(wèn)題暫且可以放在一邊。腳本語(yǔ)言真正面向的是特定類型問(wèn)題的解決,其中主要涉與如何創(chuàng)建更豐富、更具有互動(dòng)能力的圖形用戶界面(GUI)。然而,腳本語(yǔ)言也許能解決客戶端編程中80%的問(wèn)題。你碰到的問(wèn)題可能完全就在那80%里面。而且由于腳本編制語(yǔ)言的宗旨是盡可能地簡(jiǎn)化與快速,所以在考慮其他更復(fù)雜的方案之前(如Java與ActiveX),首先應(yīng)想一下腳本語(yǔ)言是否可行。目前討論得最多的腳本編制語(yǔ)言包括JavaScript(它與Java沒(méi)有任何關(guān)系;之所以叫那個(gè)名字,完全是一種市場(chǎng)策略)、VBScript(同VisualBasic很相似)以與Tcl/Tk(來(lái)源于流行的跨平臺(tái)GUI構(gòu)造語(yǔ)言)。當(dāng)然還有其他許多語(yǔ)言,也有許多正在開發(fā)中。JavaScript也許是日常用的,它得到的支持也最全面。無(wú)論NetscapeNavigator,MicrosoftInternetExplorer,還是Opera,目前都提供了對(duì)JavaScript的支持。除此以外,市面上講述JavaScript的書籍也要比講述其他語(yǔ)言的書多得多。有些工具還能利用JavaScript自動(dòng)產(chǎn)生網(wǎng)頁(yè)。當(dāng)然,如果你已經(jīng)有VisualBasic或者Tcl/Tk的深厚功底,當(dāng)然用它們要簡(jiǎn)單得多,起碼可以避免學(xué)習(xí)新語(yǔ)言的煩惱(解決Web方面的問(wèn)題就已經(jīng)夠讓人頭痛了)。3、Java如果說(shuō)一種腳本編制語(yǔ)言能解決80%的客戶端程序設(shè)計(jì)問(wèn)題,那么剩下的20%又該怎么辦呢?它們屬于一些高難度的問(wèn)題嗎?目前最流行的方案就是Java。它不僅是一種功能強(qiáng)大、高度安全、可以跨平臺(tái)使用以與國(guó)際通用的程序設(shè)計(jì)語(yǔ)言,也是一種具有旺盛生命力的語(yǔ)言。對(duì)Java的擴(kuò)展是不斷進(jìn)行的,提供的語(yǔ)言特性和庫(kù)能夠很好地解決傳統(tǒng)語(yǔ)言不能解決的問(wèn)題,比如多線程操作、數(shù)據(jù)庫(kù)訪問(wèn)、連網(wǎng)程序設(shè)計(jì)以與分布式計(jì)算等等。Java通過(guò)“程序片”(Applet)巧妙地解決了客戶端編程的問(wèn)題。程序片(或“小應(yīng)用程序”)是一種非常小的程序,只能在Web瀏覽器中運(yùn)行。作為Web頁(yè)的一部分,程序片代碼會(huì)自動(dòng)下載回來(lái)(這和網(wǎng)頁(yè)中的圖片差不多)。激活程序片后,它會(huì)執(zhí)行一個(gè)程序。程序片的一個(gè)優(yōu)點(diǎn)體現(xiàn)在:通過(guò)程序片,一旦用戶需要客戶軟件,軟件就可從服務(wù)器自動(dòng)下載回來(lái)。它們能自動(dòng)取得客戶軟件的最新版本,不會(huì)出錯(cuò),也沒(méi)有重新安裝的麻煩。由于Java的設(shè)計(jì)原理,程序員只需要?jiǎng)?chuàng)建程序的一個(gè)版本,那個(gè)程序能在幾乎所有計(jì)算機(jī)以與安裝了Java解釋器的瀏覽器中運(yùn)行。由于Java是一種全功能的編程語(yǔ)言,所以在向服務(wù)器發(fā)出一個(gè)請(qǐng)求之前,我們能先在客戶端做完盡可能多的工作。例如,再也不必通過(guò)因特網(wǎng)傳送一個(gè)請(qǐng)求表單,再由服務(wù)器確定其中是否存在一個(gè)拼寫或者其他參數(shù)錯(cuò)誤。大多數(shù)數(shù)據(jù)校驗(yàn)工作均可在客戶端完成,沒(méi)有必要坐在計(jì)算機(jī)前面焦急地等待服務(wù)器的響應(yīng)。這樣一來(lái),不僅速度和響應(yīng)的靈敏度得到了極大的提高,對(duì)網(wǎng)絡(luò)和服務(wù)器造成的負(fù)擔(dān)也可以明顯減輕,這對(duì)保障因特網(wǎng)的暢通是至關(guān)重要的。

與腳本程序相比,Java程序片的另一個(gè)優(yōu)點(diǎn)是它采用編譯好的形式,所以客戶端看不到源碼。當(dāng)然在另一方面,反編譯Java程序片也并不是件難事,而且代碼的隱藏一般并不是個(gè)重要的問(wèn)題。大家要注意另外兩個(gè)重要的問(wèn)題。正如本書以前會(huì)講到的那樣,編譯好的Java程序片可能包含了許多模塊,所以要多次“命中”(訪問(wèn))服務(wù)器以便下載(在Java1.1中,這個(gè)問(wèn)題得到了有效的改善——利用Java壓縮檔,即JAR文件——它允許設(shè)計(jì)者將所有必要的模塊都封裝到一起,供用戶統(tǒng)一下載)。在另一方面,腳本程序是作為Web頁(yè)正文的一部分集成到Web頁(yè)內(nèi)的。這種程序一般都非常小,可有效減少對(duì)服務(wù)器的點(diǎn)擊數(shù)。另一個(gè)因素是學(xué)習(xí)方面的問(wèn)題。不管你平時(shí)聽(tīng)別人怎么說(shuō),Java都不是一種十分容易便可學(xué)會(huì)的語(yǔ)言。如果你以前是一名VisualBasic程序員,那么轉(zhuǎn)向VBScript會(huì)是一種最快捷的方案。由于VBScript可以解決大多數(shù)典型的客戶機(jī)/服務(wù)器問(wèn)題,所以一旦上手,就很難下定決心再去學(xué)習(xí)Java。如果對(duì)腳本編制語(yǔ)言比較熟,那么在轉(zhuǎn)向Java之前,建議先熟悉一下JavaScript或者VBScript,因?yàn)樗鼈兛赡芤呀?jīng)能夠滿足你的需要,不必經(jīng)歷學(xué)習(xí)Java的艱苦過(guò)程。4、因特網(wǎng)和內(nèi)聯(lián)網(wǎng)Web是解決客戶機(jī)/服務(wù)器問(wèn)題的一種常用方案,所以最好能用相同的技術(shù)解決此類問(wèn)題的一些“子集”,特別是公司內(nèi)部的傳統(tǒng)客戶機(jī)/服務(wù)器問(wèn)題。對(duì)于傳統(tǒng)的客戶機(jī)/服務(wù)器模式,我們面臨的問(wèn)題是擁有多種不同類型的客戶計(jì)算機(jī),而且很難安裝新的客戶軟件。但通過(guò)Web瀏覽器和客戶端編程,這兩類問(wèn)題都可得到很好的解決。若一個(gè)信息網(wǎng)絡(luò)局限于一家特定的公司,那么在將Web技術(shù)應(yīng)用于它之后,即可稱其為“內(nèi)聯(lián)網(wǎng)”(Intranet),以示與國(guó)際性的“因特網(wǎng)”(Internet)有別。內(nèi)聯(lián)網(wǎng)提供了比因特網(wǎng)更高的安全級(jí)別,因?yàn)榭梢晕锢硇缘乜刂茖?duì)公司內(nèi)部服務(wù)器的使用。說(shuō)到培訓(xùn),一般只要人們理解了瀏覽器的常規(guī)概念,就可以非常輕松地掌握網(wǎng)頁(yè)和程序片之間的差異,所以學(xué)習(xí)新型系統(tǒng)的開銷會(huì)大幅度減少。安全問(wèn)題將我們引入客戶端編程領(lǐng)域一個(gè)似乎是自動(dòng)形成的分支。若程序是在因特網(wǎng)上運(yùn)行,由于無(wú)從知曉它會(huì)在什么平臺(tái)上運(yùn)行,所以編程時(shí)要特別留意,防范可能出現(xiàn)的編程錯(cuò)誤。需作一些跨平臺(tái)處理,以與適當(dāng)?shù)陌踩婪叮热绮捎媚撤N腳本語(yǔ)言或者Java。但假如在內(nèi)聯(lián)網(wǎng)中運(yùn)行,面臨的一些制約因素就會(huì)發(fā)生變化。全部機(jī)器均為Intel/Windows平臺(tái)是件很平常的事情。在內(nèi)聯(lián)網(wǎng)中,需要對(duì)自己代碼的質(zhì)量負(fù)責(zé)。而且一旦發(fā)現(xiàn)錯(cuò)誤,就可以馬上改正。除此以外,可能已經(jīng)有了一些“歷史遺留”的代碼,并用較傳統(tǒng)的客戶機(jī)/服務(wù)器方式使用那些代碼。但在進(jìn)行升級(jí)時(shí),每次都要物理性地安裝一道客戶程序。浪費(fèi)在升級(jí)安裝上的時(shí)間是轉(zhuǎn)移到瀏覽器的一項(xiàng)重要原因。使用了瀏覽器后,升級(jí)就變得易如反掌,而且整個(gè)過(guò)程是透明和自動(dòng)進(jìn)行的。如果真的是牽涉到這樣的一個(gè)內(nèi)聯(lián)網(wǎng)中,最明智的方法是采用ActiveX,而非試圖采用一種新的語(yǔ)言來(lái)改寫程序代碼。5、服務(wù)器端編程我們的整個(gè)討論都忽略了服務(wù)器端編程的問(wèn)題。如果向服務(wù)器發(fā)出一個(gè)請(qǐng)求,會(huì)發(fā)生什么事情?大多數(shù)時(shí)候的請(qǐng)求都是很簡(jiǎn)單的一個(gè)“把這個(gè)文件發(fā)給我”。瀏覽器隨后會(huì)按適當(dāng)?shù)男问浇忉屵@個(gè)文件:作為HTML頁(yè)、一幅圖、一個(gè)Java程序片、一個(gè)腳本程序等等。向服務(wù)器發(fā)出的較復(fù)雜的請(qǐng)求通常涉與到對(duì)一個(gè)數(shù)據(jù)庫(kù)進(jìn)行操作(事務(wù)處理)。其中最常見(jiàn)的就是發(fā)出一個(gè)數(shù)據(jù)庫(kù)檢索命令,得到結(jié)果后,服務(wù)器會(huì)把它格式化成HTML頁(yè),并作為結(jié)果傳回來(lái)(當(dāng)然,假如客戶通過(guò)Java或者某種腳本語(yǔ)言具有了更高的智能,那么原始數(shù)據(jù)就能在客戶端發(fā)送和格式化;這樣做速度可以更快,也能減輕服務(wù)器的負(fù)擔(dān))。另外,有時(shí)需要在數(shù)據(jù)庫(kù)中注冊(cè)自己的名字(比如加入一個(gè)組時(shí)),或者向服務(wù)器發(fā)出一份訂單,這就涉與到對(duì)那個(gè)數(shù)據(jù)庫(kù)的修改。這類服務(wù)器請(qǐng)求必須通過(guò)服務(wù)器端的一些代碼進(jìn)行,我們稱其為“服務(wù)器端的編程”。在傳統(tǒng)意義上,服務(wù)器端編程是用Perl和CGI腳本進(jìn)行的,但更復(fù)雜的系統(tǒng)已經(jīng)出現(xiàn)。其中包括基于Java的Web服務(wù)器,它允許我們用Java進(jìn)行所有服務(wù)器端編程,寫出的程序就叫做“小服務(wù)程序”(Servlet)。6、一個(gè)獨(dú)立的領(lǐng)域:應(yīng)用程序與Java有關(guān)的大多數(shù)爭(zhēng)論都是與程序片有關(guān)的。Java實(shí)際是一種常規(guī)用途的程序設(shè)計(jì)語(yǔ)言,可解決任何類型的問(wèn)題,至少理論上如此。而且正如前面指出的,可以用更有效的方式來(lái)解決大多數(shù)客戶機(jī)/服務(wù)器問(wèn)題。如果將視線從程序片身上轉(zhuǎn)開(同時(shí)放寬一些限制,比如禁止寫盤等),就進(jìn)入了常規(guī)用途的應(yīng)用程序的廣闊領(lǐng)域。這種應(yīng)用程序可獨(dú)立運(yùn)行,毋需瀏覽器,就象普通的執(zhí)行程序那樣。在這兒,Java的特色并不僅僅反應(yīng)在它的移植能力,也反映在編程本身上。就像貫穿全書都會(huì)講到的那樣,Java提供了許多有用的特性,使我們能在較短的時(shí)間里創(chuàng)建出比用從前的程序設(shè)計(jì)語(yǔ)言更健壯的程序。但要注意任何東西都不是十全十美的,我們?yōu)榇艘惨冻鲆恍┐鷥r(jià)。其中最明顯的是執(zhí)行速度放慢了(盡管可對(duì)此進(jìn)行多方面的調(diào)整)。和任何語(yǔ)言一樣,Java本身也存在一些限制,使得它不十分適合解決某些特殊的編程問(wèn)題。但不管怎樣,Java都是一種正在快速發(fā)展的語(yǔ)言。隨著每個(gè)新版本的發(fā)布,它變得越來(lái)越可愛(ài),能充分解決的問(wèn)題也變得越來(lái)越多。ThingkinginJava(JavaandtheInternet)IfJavais,infact,yetanothercomputerprogramminglanguage,youmayquestionwhyitissoimportantandwhyitisbeingpromotedasarevolutionarystepincomputerprogramming.Theanswerisn’timmediatelyobviousifyou’recomingfromatraditionalprogrammingperspective.AlthoughJavaisveryusefulforsolvingtraditionalstand-aloneprogrammingproblems,itisalsoimportantbecauseitwillsolveprogrammingproblemsontheWorldWideWeb.1.Client-sideprogrammingTheWeb’sinitialserver-browserdesignprovidedforinteractivecontent,buttheinteractivitywascompletelyprovidedbytheserver.Theserverproducedstaticpagesfortheclientbrowser,whichwouldsimplyinterpretanddisplaythem.BasicHTMLcontainssimplemechanismsfordatagathering:text-entryboxes,checkboxes,radioboxes,listsanddrop-downlists,aswellasabuttonthatcanonlybeprogrammedtoresetthedataontheformor“submit”thedataontheformbacktotheserver.ThissubmissionpassesthroughtheCommonGatewayInterface(CGI)providedonallWebservers.ThetextwithinthesubmissiontellsCGIwhattodowithit.Themostcommonactionistorunaprogramlocatedontheserverinadirectorythat’stypicallycalled“cgi-bin.”(IfyouwatchtheaddresswindowatthetopofyourbrowserwhenyoupushabuttononaWebpage,youcansometimessee“cgi-bin”withinallthegobbledygookthere.)Theseprogramscanbewritteninmostlanguages.Perlisacommonchoicebecauseitisdesignedfortextmanipulationandisinterpreted,soitcanbeinstalledonanyserverregardlessofprocessororoperatingsystem.ManypowerfulWebsitestodayarebuiltstrictlyonCGI,andyoucaninfactdonearlyanythingwithit.However,WebsitesbuiltonCGIprogramscanrapidlybecomeoverlycomplicatedtomaintain,andthereisalsotheproblemofresponsetime.TheresponseofaCGIprogramdependsonhowmuchdatamustbesent,aswellastheloadonboththeserverandtheInternet.(Ontopofthis,startingaCGIprogramtendstobeslow.)TheinitialdesignersoftheWebdidnotforeseehowrapidlythisbandwidthwouldbeexhaustedforthekindsofapplicationspeopledeveloped.Forexample,anysortofdynamicgraphingisnearlyimpossibletoperformwithconsistencybecauseaGIFfilemustbecreatedandmovedfromtheservertotheclientforeachversionofthegraph.Andyou’venodoubthaddirectexperiencewithsomethingassimpleasvalidatingthedataonaninputform.Youpressthesubmitbuttononapage;thedataisshippedbacktotheserver;theserverstartsaCGIprogramthatdiscoversanerror,formatsanHTMLpageinformingyouoftheerror,andthensendsthepagebacktoyou;youmustthenbackupapageandtryagain.Notonlyisthisslow,it’sinelegant.Thesolutionisclient-sideprogramming.MostmachinesthatrunWebbrowsersarepowerfulenginescapableofdoingvastwork,andwiththeoriginalstaticHTMLapproachtheyaresittingthere,justidlywaitingfortheservertodishupthenextpage.Client-sideprogrammingmeansthattheWebbrowserisharnessedtodowhateverworkitcan,andtheresultfortheuserisamuchspeedierandmoreinteractiveexperienceatyourWebsite.Theproblemwithdiscussionsofclient-sideprogrammingisthattheyaren’tverydifferentfromdiscussionsofprogrammingingeneral.Theparametersarealmostthesame,buttheplatformisdifferent:aWebbrowserislikealimitedoperatingsystem.Intheend,youmuststillprogram,andthisaccountsforthedizzyingarrayofproblemsandsolutionsproducedbyclient-sideprogramming.Therestofthissectionprovidesanoverviewoftheissuesandapproachesinclient-sideprogramming.2.ScriptinglanguagesPlug-insresultedinanexplosionofscriptinglanguages.Withascriptinglanguageyouembedthesourcecodeforyourclient-sideprogramdirectlyintotheHTMLpage,andtheplug-inthatinterpretsthatlanguageisautomaticallyactivatedwhiletheHTMLpageisbeingdisplayed.Scriptinglanguagestendtobereasonablyeasytounderstandand,becausetheyaresimplytextthatispartofanHTMLpage,theyloadveryquicklyaspartofthesingleserverhitrequiredtoprocurethatpage.Thetrade-offisthatyourcodeisexposedforeveryonetosee(andsteal).Generally,however,youaren’tdoingamazinglysophisticatedthingswithscriptinglanguagessothisisnottoomuchofahardship.ThispointsoutthatthescriptinglanguagesusedinsideWebbrowsersarereallyintendedtosolvespecifictypesofproblems,primarilythecreationofricherandmoreinteractivegraphicaluserinterfaces(GUIs).However,ascriptinglanguagemightsolve80percentoftheproblemsencounteredinclient-sideprogramming.Yourproblemsmightverywellfitcompletelywithinthat80percent,andsincescriptinglanguagescanalloweasierandfasterdevelopment,youshouldprobablyconsiderascriptinglanguagebeforelookingatamoreinvolvedsolutionsuchasJavaorActiveXprogramming.ThemostcommonlydiscussedbrowserscriptinglanguagesareJavaScript(whichhasnothingtodowithJava;it’snamedthatwayjusttograbsomeofJava’smarketingmomentum),VBScript(whichlookslikeVisualBasic),andTcl/Tk,whichcomesfromthepopularcross-platformGUI-buildinglanguage.Thereareothersoutthere,andnodoubtmoreindevelopment.JavaScriptisprobablythemostcommonlysupported.ItcomesbuiltintobothNetscapeNavigatorandtheMicrosoftInternetExplorer(IE).Inaddition,thereareprobablymoreJavaScriptbooksavailablethantherearefortheotherbrowserlanguages,andsometoolsautomaticallycreatepagesusingJavaScript.However,ifyou’realreadyfluentinVisualBasicorTcl/Tk,you’llbemoreproductiveusingthosescriptinglanguagesratherthanlearninganewone.(You’llhaveyourhandsfulldealingwiththeWebissuesalready.)3.JavaIfascriptinglanguagecansolve80percentoftheclient-sideprogrammingproblems,whatabouttheother20percent—the“reallyhardstuff?”ThemostpopularsolutiontodayisJava.Notonlyisitapowerfulprogramminglanguagebuilttobesecure,cross-platform,andinternational,butJavaisbeingcontinuallyextendedtoprovidelanguagefeaturesandlibrariesthatelegantlyhandleproblemsthataredifficultintraditionalprogramminglanguages,suchasmultithreading,databaseaccess,networkprogramming,anddistributedcomputing.Javaallowsclient-sideprogrammingviatheapplet.Anappletisamini-programthatwillrunonlyunderaWebbrowser.TheappletisdownloadedautomaticallyaspartofaWebpage(justas,forexample,agraphicisautomaticallydownloaded).Whentheappletisactivateditexecutesaprogram.Thisispartofitsbeauty—itprovidesyouwithawaytoautomaticallydistributetheclientsoftwarefromtheserveratthetimetheuserneedstheclientsoftware,andnosooner.Theusergetsthelatestversionoftheclientsoftwarewithoutfailandwithoutdifficultreinstallation.BecauseofthewayJavaisdesigned,theprogrammerneedstocreateonlyasingleprogram,andthatprogramautomaticallyworkswithallcomputersthathavebrowserswithbuilt-inJavainterpreters.(Thissafelyincludesthevastmajorityofmachines.)SinceJavaisafull-fledgedprogramminglanguage,youcandoasmuchworkaspossibleontheclientbeforeandaftermakingrequestsoftheserver.Forexample,youwon’tneedtosendarequestformacrosstheInternettodiscoverthatyou’vegottenadateorsomeotherparameterwrong,andyourclientcomputercanquicklydotheworkofplottingdatainsteadofwaitingfortheservertomakeaplotandshipagraphicimagebacktoyou.Notonlydoyougettheimmediatewinofspeedandresponsiveness,butthegeneralnetworktrafficandloadonserverscanbereduced,preventingtheentireInternetfromslowingdown.OneadvantageaJavaapplethasoverascriptedprogramisthatit’sincompiledform,sothesourcecodeisn’tavailabletotheclient.Ontheotherhand,aJavaappletcanbedecompiledwithouttoomuchtrouble,buthidingyourcodeisoftennotanimportantissue.Twootherfactorscanbeimportant.Asyouwillseelaterinthisbook,acompiledJavaappletcancomprisemanymodulesandtakemultipleserver“hits”(accesses)todownload.(InJava1.1andhigherthisisminimizedbyJavaarchives,calledJARfiles,thatallowalltherequiredmodulestobepackagedtogetherandcompressedforasingledownload.)AscriptedprogramwilljustbeintegratedintotheWebpageaspartofitstext(andwillgenerallybesmallerandreduceserverhits).ThiscouldbeimportanttotheresponsivenessofyourWebsite.Anotherfactoristheall-importantlearningcurve.Regardlessofwhatyou’veheard,Javaisnotatriviallanguagetolearn.Ifyou’reaVisualBasicprogrammer,movingtoVBScriptwillbeyourfastestsolution,andsinceitwillprobablysolvemosttypicalclient/serverproblemsyoumightbehardpressedtojustifylearningJava.Ifyou’reexperiencedwithascriptinglanguageyouwillcertainlybenefitfromlookingatJavaScriptorVBScriptbeforecommittingtoJava,sincetheymightfityourneedshandily.4.Internetvs.intranetTheWebisthemostgeneralsolutiontotheclient/serverproblem,soitmakessensethatyoucanusethesametechnologytosolveasubsetoftheproblem,inparticulartheclassicclient/serverproblemwithinacompany.Withtraditionalclient/serverapproachesyouhavetheproblemofmultipletypesofclientcomputers,aswellasthedifficultyofinstallingnewclientsoftware,bothofwhicharehandilysolvedwithWebbrowsersandclient-sideprogramming.WhenWebtechnologyisusedforaninformationnetworkthatisrestrictedtoaparticularcompany,itisreferredtoasanintranet.IntranetsprovidemuchgreatersecuritythantheInternet,sinceyoucanphysicallycontrolaccesstotheserverswithinyourcompany.Intermsoftraining,itseemsthatoncepeopleunderstandthegeneralconceptofabrowserit’smucheasierforthemtodealwithdifferencesinthewaypagesandappletslook,sothelearningcurvefornewkindsofsystemsseemstobereduced.Thesecurityproblembringsustooneofthedivisionsthatseemstobeautomaticallyformingintheworldofclient-sideprogramming.IfyourprogramisrunningontheInternet,youdon’tknowwhatplatformitwillbeworkingunder,andyouwanttobeextracarefulthatyoudon’tdisseminatebuggycode.Youneedsomethingcross-platformandsecure,likeascriptinglanguageorJava.Ifyou’rerunningonanintranet,youmighthaveadifferentsetofconstraints.It’snotuncommonthatyourmachinescouldallbeIntel/Windowsplatforms.Onanintranet,you’reresponsibleforthequalityofyourowncodeandcanrepairbugswhenthey’rediscovered.Inaddition,youmightalreadyhaveabodyoflegacycodethatyou’vebeenusinginamoretraditionalclient/serverapproach,wherebyyoumustphysicallyinstallclientprogramseverytimeyoudoanupgrade.Thetimewastedininstallingupgradesisthemostcompellingreasontomovetobrowsers,becauseupgradesareinvisibleandautomatic.Ifyouareinvolvedinsuchanintranet,themostsensibleapproachtotakeistheshortestpaththatallowsyoutouseyourexistingcodebase,ratherthantryingtorecodeyourprogramsinanewlanguage.5.Server-sideprogrammingThiswholediscussionhasignoredtheissueofserver-sideprogramming.Whathappenswhenyoumakearequestofaserver?Mostofthetimetherequestissimply“sendmethisfile.”Yourbrowsertheninterpretsthefileinsomeappropriatefashion:asanHTMLpage,agraphicimage,aJavaapplet,ascriptprogram,etc.Amorecomplicatedrequesttoaservergenerallyinvolvesadatabasetransaction.Acommonscenarioinvolvesarequestforacomplexdatabasesearch,whichtheserverthenformatsintoanHTMLpageandsendstoyouastheresult.(Ofcourse,iftheclienthasmoreintelligenceviaJavaorascriptinglanguage,therawdatacanbesentandformattedattheclientend,whichwillbefasterandlessloadontheserver.)Oryoumightwanttoregisteryournameinadatabasewhenyoujoinagrouporplaceanorder,whichwillinvolvechangestothatdatabase.Thesedatabaserequestsmustbeprocessedviasomecodeontheserverside,whichisgenera

溫馨提示

  • 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)論