麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Java和因特網

2019-11-18 13:22:58
字體:
來源:轉載
供稿:網友

  既然java不過另一種類型的程序設計語言,大家可能會希奇它為什么值得如此重視,為什么還有這么多的人認為它是計算機程序設計的一個里程碑呢?假如您來自一個傳統的程序設計背景,那么答案在剛開始的時候并不是很明顯。Java除了可解決傳統的程序設計問題以外,還能解決World Wide Web(萬維網)上的編程問題。
  1 什么是Web?
  Web這個詞剛開始顯得有些泛泛,似乎“沖浪”、“網上存在”以及“主頁”等等都和它拉上了一些關系。甚至還有一種“Internet綜合癥”的說法,對許多人狂熱的上網行為提出了質疑。我們在這里有必要作一些深入的探討,但在這之前,必須理解客戶機/服務器系統的概念,這是充斥著許多令人迷惑的問題的又一個計算領域。
  1). 客戶機/服務器計算
  客戶機/服務器系統的基本思想是我們能在一個統一的地方集中存放信息資源。一般將數據集中保存在某個數據庫中,根據其他人或者機器的請求將信息投遞給對方。客戶機/服務器概述的一個要害在于信息是“集中存放”的。所以我們能方便地更改信息,然后將修改過的信息發放給信息的消費者。將各種元素集中到一起,信息倉庫、用于投遞信息的軟件以及信息及軟件所在的那臺機器,它們聯合起來便叫作“服務器”(Server)。而對那些駐留在遠程機器上的軟件,它們需要與服務器通信,取回信息,進行適當的處理,然后在遠程機器上顯示出來,這些就叫作“客戶”(Client)。
  這樣看來,客戶機/服務器的基本概念并不復雜。這里要注重的一個主要問題是單個服務器需要同時向多個客戶提供服務。在這一機制中,通常少不了一套數據庫治理系統,使設計人員能將數據布局封裝到表格中,以獲得最優的使用。除此以外,系統經常答應客戶將新信息插入一個服務器。這意味著必須確保客戶的新數據不會與其他客戶的新數據沖突,或者說需要保證那些數據在加入數據庫的時候不會丟失(用數據庫的術語來說,這叫作“事務處理”)。客戶軟件發生了改變之后,它們必須在客戶機器上構建、調試以及安裝。所有這些會使問題變得比我們一般想象的復雜得多。另外,對多種類型的計算機和操作系統的支持也是一個大問題。最后,性能的問題顯得尤為重要:可能會有數百個客戶同時向服務器發出請求。所以任何微小的延誤都是不能忽視的。為盡可能緩解潛伏的問題,程序員需要謹慎地分散任務的處理負擔。一般可以考慮讓客戶機負擔部分處理任務,但有時亦可分派給服務器所在地的其他機器,那些機器亦叫作“中間件”(中間件也用于改進對系統的維護)。
  所以在具體實現的時候,其他人發布信息這樣一個簡單的概念可能變得異常復雜。有時甚至會使人產生完全無從著手的感覺。客戶機/服務器的概念在這時就可以大顯身手了。事實上,大約有一半的程序設計活動都可以采用客戶機/服務器的結構。這種系統可負責從處理訂單及信用卡交易,一直到發布各類數據的方方面面的任務——股票市場、科學研究、政府運作等等。在過去,我們一般為單獨的問題采取單獨的解決方案;每次都要設計一套新方案。這些方案無論創建還是使用都比較困難,用戶每次都要學習和適應新界面。客戶機/服務器問題需要從根本上加以變革!
  2). Web是一個巨大的服務器
  Web實際就是一套規模巨大的客戶機/服務器系統。但它的情況要復雜一些,因為所有服務器和客戶都同時存在于單個網絡上面。但我們沒必要了解更進一步的細節,因為唯一要關心的就是一次建立同一個服務器的連接,并同它打交道(即使可能要在全世界的范圍內搜索正確的服務器)。
  最開始的時候,這是一個簡單的單向操作過程。我們向一個服務器發出請求,它向我們回傳一個文件,由于本機的瀏覽器軟件(亦即“客戶”或“客戶程序”)負責解釋和格式化,并在我們面前的屏幕上正確地顯示出來。但人們不久就不滿足于只從一個服務器傳遞網頁。他們希望獲得完全的客戶機/服務器能力,使客戶(程序)也能反饋一些信息到服務器。比如希望對服務器上的數據庫進行檢索,向服務器添加新信息,或者下一份訂單等等(這也提供了比以前的系統更高的安全要求)。在Web的發展過程中,我們可以很清楚地看出這些令人心喜的變化。
  Web瀏覽器的發展終于邁出了重要的一步:某個信息可在任何類型的計算機上顯示出來,毋需任何改動。然而,瀏覽器仍然顯得很原始,在用戶迅速增多的要求面前顯得有些力不從心。它們的交互能力不夠強,而且對服務器和因特網都造成了一定程度的干擾。這是由于每次采取一些要求編程的操作時,必須將信息反饋回服務器,在服務器那一端進行處理。所以完全可能需要等待數秒乃至數分鐘的時間才會發現自己剛才拼錯了一個單詞。由于瀏覽器只是一個純粹的查看程序,所以連最簡單的計算任務都不能進行(當然在另一方面,它也顯得非常安全,因為不能在本機上面執行任何程序,避開了程序錯誤或者病毒的騷擾)。
  為解決這個問題,人們采取了許多不同的方法。最開始的時候,人們對圖形標準進行了改進,使瀏覽器能顯示更好的動畫和視頻。為解決剩下的問題,唯一的辦法就是在客戶端(瀏覽器)內運行程序。這就叫作“客戶端編程”,它是對傳統的“服務器端編程”的一個非常重要的拓展。
  2 客戶端編程(見注釋)
  Web最初采用的“服務器-瀏覽器”方案可提供交互式內容,但這種交互能力完全由服務器提供,為服務器和因特網帶來了不小的負擔。服務器一般為客戶瀏覽器產生靜態網頁,由后者簡單地解釋并顯示出來。基本Html語言提供了簡單的數據收集機制:文字輸入框、復選框、單選鈕、列表以及下拉列表等,另外還有一個按鈕,只能由程序規定重新設置表單中的數據,以便回傳給服務器。用戶提交的信息通過所有Web服務器均能支持的“通用網關接口”(CGI)回傳到服務器。包含在提交數據中的文字指示CGI該如何操作。最常見的行動是運行位于服務器的一個程序。那個程序一般保存在一個名為“cgi-bin”的目錄中(按下Web頁內的一個按鈕時,請注重一下瀏覽器頂部的地址窗,經常都能發現“cgi-bin”的字樣)。大多數語言都可用來編制這些程序,但其中最常見的是Perl。這是由于Perl是專為文字的處理及解釋而設計的,所以能在任何服務器上安裝和使用,無論采用的處理器或操作系統是什么。
  [注釋]:本節內容改編自某位作者的一篇文章。那篇文章最早出現在位于www.mainsPRing.com的Mainspring上。本節的采用已征得了對方的同意。
  今天的許多Web站點都嚴格地建立在CGI的基礎上,事實上幾乎所有事情都可用CGI做到。唯一的問題就是響應時間。CGI程序的響應取決于需要傳送多少數據,以及服務器和因特網兩方面的負擔有多重(而且CGI程序的啟動比較慢)。Web的早期設計者并未預料到當初綽綽有余的帶寬很快就變得不夠用,這正是大量應用充斥網上造成的結果。例如,此時任何形式的動態圖形顯示都幾乎不能連貫地顯示,因為此時必須創建一個GIF文件,再將圖形的每種變化從服務器傳遞給客戶。而且大家應該對輸入表單上的數據校驗有著深刻的體會。原來的方法是我們按下網頁上的提交按鈕(Submit);數據回傳給服務器;服務器啟動一個CGI程序,檢查用戶輸入是否有錯;格式化一個HTML頁,通知可能碰到的錯誤,并將這個頁回傳給我們;隨后必須回到原先那個表單頁,再輸入一遍。這種方法不僅速度非常慢,也顯得非常繁瑣。
  解決的辦法就是客戶端的程序設計。運行Web瀏覽器的大多數機器都擁有足夠強的能力,可進行其他大量工作。與此同時,原始的靜態HTML方法仍然可以采用,它會一直等到服務器送回下一個頁。客戶端編程意味著Web瀏覽器可獲得更充分的利用,并可有效改善Web服務器的交互(互動)能力。
  對客戶端編程的討論與常規編程問題的討論并沒有太大的區別。采用的參數肯定是相同的,只是運行的平臺不同:Web瀏覽器就象一個有限的操作系統。無論如何,我們仍然需要編程,仍然會在客戶端編程中碰到大量問題,同時也有很多解決的方案。在本節剩下的部分里,我們將對這些問題進行一番概括,并介紹在客戶端編程中采取的對策。
  1). 插件
  朝客戶端編程邁進的時候,最重要的一個問題就是插件的設計。利用插件,程序員可以方便地為瀏覽器添加新功能,用戶只需下載一些代碼,把它們“插入”瀏覽器的適當位置即可。這些代碼的作用是告訴瀏覽器“從現在開始,你可以進行這些新活動了”(僅需下載這些插入一次)。有些快速和功能強大的行為是通過插件添加到瀏覽器的。但插件的編寫并不是一件簡單的任務。在我們構建一個特定的站點時,可能并不希望涉及這方面的工作。對客戶端程序設計來說,插件的價值在于它答應專業程序員設計出一種新的語言,并將那種語言添加到瀏覽器,同時不必經過瀏覽器原創者的許可。由此可以看出,插件實際是瀏覽器的一個“后門”,答應創建新的客戶端程序設計語言(盡管并非所有語言都是作為插件實現的)。
  2). 腳本編制語言
  插件造成了腳本編制語言的爆炸性增長。通過這種腳本語言,可將用于自己客戶端程序的源碼直接插入HTML頁,而對那種語言進行解釋的插件會在HTML頁顯示的時候自動激活。腳本語言一般都傾向于盡量簡化,易于理解。而且由于它們是從屬于HTML頁的一些簡單正文,所以只需向服務器發出對那個頁的一次請求,即可非常快地載入。缺點是我們的代碼全部暴露在人們面前。另一方面,由于通常不用腳本編制語言做過份復雜的事情,所以這個問題暫且可以放在一邊。
  腳本語言真正面向的是特定類型問題的解決,其中主要涉及如何創建更豐富、更具有互動能力的圖形用戶界面(GUI)。然而,腳本語言也許能解決客戶端編程中80%的問題。你碰到的問題可能完全就在那80%里面。而且由于腳本編制語言的宗旨是盡可能地簡化與快速,所以在考慮其他更復雜的方案之前(如Java及ActiveX),首先應想一下腳本語言是否可行。
  目前討論得最多的腳本編制語言包括javascript(它與Java沒有任何關系;之所以叫

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产日韩大片 | 色婷婷久久一区二区 | 久久经典国产视频 | 羞羞答答影院 | 国产精品久久久久影院老司 | 一级国产电影 | av在线影片 | 中文字幕免费在线观看视频 | 国产一级毛片a | 国产午夜免费福利 | 99久久精品免费 | 少妇一级淫片高潮流水电影 | 毛片a级毛片免费播放100 | 久久久青 | 好吊色欧美一区二区三区四区 | 久久久国产一级片 | 久久亚洲国产精品 | 日韩在线激情 | 久久久久国 | 久久久久亚洲视频 | 天天操很很操 | 99亚洲| 成人不卡| 好吊色欧美一区二区三区四区 | 99视频网址| 91一区二区三区久久久久国产乱 | 一区二区久久电影 | 久久精品亚洲国产奇米99 | 55夜色66夜色国产精品视频 | fc2成人免费人成在线观看播放 | 久久国产精品无码网站 | 毛片免费一区二区三区 | a黄在线观看 | 国内性爱视频 | 91成人在线免费视频 | av在线免费看网址 | 91精品国产91久久久久久吃药 | 毛片天天看 | 成人在线视频网 | 香蕉视频h| 亚洲网站免费 |