版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
文獻(xiàn)來源:BruceEckel.ThinkinginJava[J].PearsonHigherIsiaEducation,2006-2-20.Java編程思想(Java和因特網(wǎng))既然Java不過另一種類型的程序設(shè)計(jì)語言,大家可能會奇怪它為什么值得如此重視,為什么還有這么多的人認(rèn)為它是計(jì)算機(jī)程序設(shè)計(jì)的一個(gè)里程碑呢?如果您來自一個(gè)傳統(tǒng)的程序設(shè)計(jì)背景,那么答案在剛開始的時(shí)候并不是很明顯。Java除了可解決傳統(tǒng)的程序設(shè)計(jì)問題以外,還能解決WorldWideWeb(萬維網(wǎng))上的編程問題。1、客戶端編程Web最初采用的“服務(wù)器-瀏覽器”方案可提供交互式內(nèi)容,但這種交互能力完全由服務(wù)器提供,為服務(wù)器和因特網(wǎng)帶來了不小的負(fù)擔(dān)。服務(wù)器一般為客戶瀏覽器產(chǎn)生靜態(tài)網(wǎng)頁,由后者簡單地解釋并顯示出來?;綡TML語言提供了簡單的數(shù)據(jù)收集機(jī)制:文字輸入框、復(fù)選框、單選鈕、列表以與下拉列表等,另外還有一個(gè)按鈕,只能由程序規(guī)定重新設(shè)置表單中的數(shù)據(jù),以便回傳給服務(wù)器。用戶提交的信息通過所有Web服務(wù)器均能支持的“通用網(wǎng)關(guān)接口”(CGI)回傳到服務(wù)器。包含在提交數(shù)據(jù)中的文字指示CGI該如何操作。最常見的行動是運(yùn)行位于服務(wù)器的一個(gè)程序。那個(gè)程序一般保存在一個(gè)名為“cgi-bin”的目錄中(按下Web頁內(nèi)的一個(gè)按鈕時(shí),請注意一下瀏覽器頂部的地址窗,經(jīng)常都能發(fā)現(xiàn)“cgi-bin”的字樣)。大多數(shù)語言都可用來編制這些程序,但其中最常見的是Perl。這是由于Perl是專為文字的處理與解釋而設(shè)計(jì)的,所以能在任何服務(wù)器上安裝和使用,無論采用的處理器或操作系統(tǒng)是什么。2、腳本編制語言插件造成了腳本編制語言的爆炸性增長。通過這種腳本語言,可將用于自己客戶端程序的源碼直接插入HTML頁,而對那種語言進(jìn)行解釋的插件會在HTML頁顯示的時(shí)候自動激活。腳本語言一般都傾向于盡量簡化,易于理解。而且由于它們是從屬于HTML頁的一些簡單正文,所以只需向服務(wù)器發(fā)出對那個(gè)頁的一次請求,即可非??斓剌d入。缺點(diǎn)是我們的代碼全部暴露在人們面前。另一方面,由于通常不用腳本編制語言做過分復(fù)雜的事情,所以這個(gè)問題暫且可以放在一邊。腳本語言真正面向的是特定類型問題的解決,其中主要涉與如何創(chuàng)建更豐富、更具有互動能力的圖形用戶界面(GUI)。然而,腳本語言也許能解決客戶端編程中80%的問題。你碰到的問題可能完全就在那80%里面。而且由于腳本編制語言的宗旨是盡可能地簡化與快速,所以在考慮其他更復(fù)雜的方案之前(如Java與ActiveX),首先應(yīng)想一下腳本語言是否可行。目前討論得最多的腳本編制語言包括JavaScript(它與Java沒有任何關(guān)系;之所以叫那個(gè)名字,完全是一種市場策略)、VBScript(同VisualBasic很相似)以與Tcl/Tk(來源于流行的跨平臺GUI構(gòu)造語言)。當(dāng)然還有其他許多語言,也有許多正在開發(fā)中。JavaScript也許是日常用的,它得到的支持也最全面。無論NetscapeNavigator,MicrosoftInternetExplorer,還是Opera,目前都提供了對JavaScript的支持。除此以外,市面上講述JavaScript的書籍也要比講述其他語言的書多得多。有些工具還能利用JavaScript自動產(chǎn)生網(wǎng)頁。當(dāng)然,如果你已經(jīng)有VisualBasic或者Tcl/Tk的深厚功底,當(dāng)然用它們要簡單得多,起碼可以避免學(xué)習(xí)新語言的煩惱(解決Web方面的問題就已經(jīng)夠讓人頭痛了)。3、Java如果說一種腳本編制語言能解決80%的客戶端程序設(shè)計(jì)問題,那么剩下的20%又該怎么辦呢?它們屬于一些高難度的問題嗎?目前最流行的方案就是Java。它不僅是一種功能強(qiáng)大、高度安全、可以跨平臺使用以與國際通用的程序設(shè)計(jì)語言,也是一種具有旺盛生命力的語言。對Java的擴(kuò)展是不斷進(jìn)行的,提供的語言特性和庫能夠很好地解決傳統(tǒng)語言不能解決的問題,比如多線程操作、數(shù)據(jù)庫訪問、連網(wǎng)程序設(shè)計(jì)以與分布式計(jì)算等等。Java通過“程序片”(Applet)巧妙地解決了客戶端編程的問題。程序片(或“小應(yīng)用程序”)是一種非常小的程序,只能在Web瀏覽器中運(yùn)行。作為Web頁的一部分,程序片代碼會自動下載回來(這和網(wǎng)頁中的圖片差不多)。激活程序片后,它會執(zhí)行一個(gè)程序。程序片的一個(gè)優(yōu)點(diǎn)體現(xiàn)在:通過程序片,一旦用戶需要客戶軟件,軟件就可從服務(wù)器自動下載回來。它們能自動取得客戶軟件的最新版本,不會出錯(cuò),也沒有重新安裝的麻煩。由于Java的設(shè)計(jì)原理,程序員只需要?jiǎng)?chuàng)建程序的一個(gè)版本,那個(gè)程序能在幾乎所有計(jì)算機(jī)以與安裝了Java解釋器的瀏覽器中運(yùn)行。由于Java是一種全功能的編程語言,所以在向服務(wù)器發(fā)出一個(gè)請求之前,我們能先在客戶端做完盡可能多的工作。例如,再也不必通過因特網(wǎng)傳送一個(gè)請求表單,再由服務(wù)器確定其中是否存在一個(gè)拼寫或者其他參數(shù)錯(cuò)誤。大多數(shù)數(shù)據(jù)校驗(yàn)工作均可在客戶端完成,沒有必要坐在計(jì)算機(jī)前面焦急地等待服務(wù)器的響應(yīng)。這樣一來,不僅速度和響應(yīng)的靈敏度得到了極大的提高,對網(wǎng)絡(luò)和服務(wù)器造成的負(fù)擔(dān)也可以明顯減輕,這對保障因特網(wǎng)的暢通是至關(guān)重要的。
與腳本程序相比,Java程序片的另一個(gè)優(yōu)點(diǎn)是它采用編譯好的形式,所以客戶端看不到源碼。當(dāng)然在另一方面,反編譯Java程序片也并不是件難事,而且代碼的隱藏一般并不是個(gè)重要的問題。大家要注意另外兩個(gè)重要的問題。正如本書以前會講到的那樣,編譯好的Java程序片可能包含了許多模塊,所以要多次“命中”(訪問)服務(wù)器以便下載(在Java1.1中,這個(gè)問題得到了有效的改善——利用Java壓縮檔,即JAR文件——它允許設(shè)計(jì)者將所有必要的模塊都封裝到一起,供用戶統(tǒng)一下載)。在另一方面,腳本程序是作為Web頁正文的一部分集成到Web頁內(nèi)的。這種程序一般都非常小,可有效減少對服務(wù)器的點(diǎn)擊數(shù)。另一個(gè)因素是學(xué)習(xí)方面的問題。不管你平時(shí)聽別人怎么說,Java都不是一種十分容易便可學(xué)會的語言。如果你以前是一名VisualBasic程序員,那么轉(zhuǎn)向VBScript會是一種最快捷的方案。由于VBScript可以解決大多數(shù)典型的客戶機(jī)/服務(wù)器問題,所以一旦上手,就很難下定決心再去學(xué)習(xí)Java。如果對腳本編制語言比較熟,那么在轉(zhuǎn)向Java之前,建議先熟悉一下JavaScript或者VBScript,因?yàn)樗鼈兛赡芤呀?jīng)能夠滿足你的需要,不必經(jīng)歷學(xué)習(xí)Java的艱苦過程。4、因特網(wǎng)和內(nèi)聯(lián)網(wǎng)Web是解決客戶機(jī)/服務(wù)器問題的一種常用方案,所以最好能用相同的技術(shù)解決此類問題的一些“子集”,特別是公司內(nèi)部的傳統(tǒng)客戶機(jī)/服務(wù)器問題。對于傳統(tǒng)的客戶機(jī)/服務(wù)器模式,我們面臨的問題是擁有多種不同類型的客戶計(jì)算機(jī),而且很難安裝新的客戶軟件。但通過Web瀏覽器和客戶端編程,這兩類問題都可得到很好的解決。若一個(gè)信息網(wǎng)絡(luò)局限于一家特定的公司,那么在將Web技術(shù)應(yīng)用于它之后,即可稱其為“內(nèi)聯(lián)網(wǎng)”(Intranet),以示與國際性的“因特網(wǎng)”(Internet)有別。內(nèi)聯(lián)網(wǎng)提供了比因特網(wǎng)更高的安全級別,因?yàn)榭梢晕锢硇缘乜刂茖緝?nèi)部服務(wù)器的使用。說到培訓(xùn),一般只要人們理解了瀏覽器的常規(guī)概念,就可以非常輕松地掌握網(wǎng)頁和程序片之間的差異,所以學(xué)習(xí)新型系統(tǒng)的開銷會大幅度減少。安全問題將我們引入客戶端編程領(lǐng)域一個(gè)似乎是自動形成的分支。若程序是在因特網(wǎng)上運(yùn)行,由于無從知曉它會在什么平臺上運(yùn)行,所以編程時(shí)要特別留意,防范可能出現(xiàn)的編程錯(cuò)誤。需作一些跨平臺處理,以與適當(dāng)?shù)陌踩婪?,比如采用某種腳本語言或者Java。但假如在內(nèi)聯(lián)網(wǎng)中運(yùn)行,面臨的一些制約因素就會發(fā)生變化。全部機(jī)器均為Intel/Windows平臺是件很平常的事情。在內(nèi)聯(lián)網(wǎng)中,需要對自己代碼的質(zhì)量負(fù)責(zé)。而且一旦發(fā)現(xiàn)錯(cuò)誤,就可以馬上改正。除此以外,可能已經(jīng)有了一些“歷史遺留”的代碼,并用較傳統(tǒng)的客戶機(jī)/服務(wù)器方式使用那些代碼。但在進(jìn)行升級時(shí),每次都要物理性地安裝一道客戶程序。浪費(fèi)在升級安裝上的時(shí)間是轉(zhuǎn)移到瀏覽器的一項(xiàng)重要原因。使用了瀏覽器后,升級就變得易如反掌,而且整個(gè)過程是透明和自動進(jìn)行的。如果真的是牽涉到這樣的一個(gè)內(nèi)聯(lián)網(wǎng)中,最明智的方法是采用ActiveX,而非試圖采用一種新的語言來改寫程序代碼。5、服務(wù)器端編程我們的整個(gè)討論都忽略了服務(wù)器端編程的問題。如果向服務(wù)器發(fā)出一個(gè)請求,會發(fā)生什么事情?大多數(shù)時(shí)候的請求都是很簡單的一個(gè)“把這個(gè)文件發(fā)給我”。瀏覽器隨后會按適當(dāng)?shù)男问浇忉屵@個(gè)文件:作為HTML頁、一幅圖、一個(gè)Java程序片、一個(gè)腳本程序等等。向服務(wù)器發(fā)出的較復(fù)雜的請求通常涉與到對一個(gè)數(shù)據(jù)庫進(jìn)行操作(事務(wù)處理)。其中最常見的就是發(fā)出一個(gè)數(shù)據(jù)庫檢索命令,得到結(jié)果后,服務(wù)器會把它格式化成HTML頁,并作為結(jié)果傳回來(當(dāng)然,假如客戶通過Java或者某種腳本語言具有了更高的智能,那么原始數(shù)據(jù)就能在客戶端發(fā)送和格式化;這樣做速度可以更快,也能減輕服務(wù)器的負(fù)擔(dān))。另外,有時(shí)需要在數(shù)據(jù)庫中注冊自己的名字(比如加入一個(gè)組時(shí)),或者向服務(wù)器發(fā)出一份訂單,這就涉與到對那個(gè)數(shù)據(jù)庫的修改。這類服務(wù)器請求必須通過服務(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ù)爭論都是與程序片有關(guān)的。Java實(shí)際是一種常規(guī)用途的程序設(shè)計(jì)語言,可解決任何類型的問題,至少理論上如此。而且正如前面指出的,可以用更有效的方式來解決大多數(shù)客戶機(jī)/服務(wù)器問題。如果將視線從程序片身上轉(zhuǎn)開(同時(shí)放寬一些限制,比如禁止寫盤等),就進(jìn)入了常規(guī)用途的應(yīng)用程序的廣闊領(lǐng)域。這種應(yīng)用程序可獨(dú)立運(yùn)行,毋需瀏覽器,就象普通的執(zhí)行程序那樣。在這兒,Java的特色并不僅僅反應(yīng)在它的移植能力,也反映在編程本身上。就像貫穿全書都會講到的那樣,Java提供了許多有用的特性,使我們能在較短的時(shí)間里創(chuàng)建出比用從前的程序設(shè)計(jì)語言更健壯的程序。但要注意任何東西都不是十全十美的,我們?yōu)榇艘惨冻鲆恍┐鷥r(jià)。其中最明顯的是執(zhí)行速度放慢了(盡管可對此進(jìn)行多方面的調(diào)整)。和任何語言一樣,Java本身也存在一些限制,使得它不十分適合解決某些特殊的編程問題。但不管怎樣,Java都是一種正在快速發(fā)展的語言。隨著每個(gè)新版本的發(fā)布,它變得越來越可愛,能充分解決的問題也變得越來越多。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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 傳真機(jī)維修服務(wù)合同
- 倉儲物流中心物業(yè)安全管理
- 倉儲管理評審修訂制度
- 交通行業(yè)勞動合同模板
- 二手房購房協(xié)議書養(yǎng)老用途
- 企業(yè)食堂外包服務(wù)運(yùn)營合同范本
- 臨時(shí)商鋪?zhàn)赓U轉(zhuǎn)賣協(xié)議
- 交通運(yùn)輸行業(yè)合作協(xié)議模板
- 人力資源副總監(jiān)工作合同
- 人力資源服務(wù)供貨合同模板
- 《顱內(nèi)動脈瘤護(hù)理》課件
- 血友病的護(hù)理查房 課件
- 工程造價(jià)咨詢服務(wù)方案(技術(shù)方案)
- 國家標(biāo)準(zhǔn)《建筑設(shè)計(jì)防火規(guī)范》2018修訂版
- DD 2014-11 地面沉降干涉雷達(dá)數(shù)據(jù)處理技術(shù)規(guī)程
- 血透室核心制度
- 體外沖擊波碎石的護(hù)理課件
- 萬歷十五年讀書分享
- 拆除防塵施工方案
- JGT377-2012 混凝土防凍泵送劑
- 工作交接單-(附件三)
評論
0/150
提交評論