官术网_书友最值得收藏!

1.1 B/S模式與C/S模式

什么是B/S?什么是C/S?為什么需要使用Java 來開發Web應用?本節通過對兩種模式的介紹和比較,來說明用B/S模式的優勢,以及為什么要用Java來開發Web應用程序。

1.1.1 C/S模式

C/S模式(Client/Server)就是客戶端與服務器結構,當客戶端提交請求時服務器給予響應。該模式可以充分利用兩端硬件環境的優勢,將任務合理分配到Client端和Server端來實現,這就降低了系統的通信開銷。C/S模式的流程圖如圖1.1所示。

圖1.1 C/S模型圖

C/S模型既然流行了這么久,自然有其特點:

(1)服務器運行負荷較輕。該模型是基于“胖客戶端”的模式,也就是把任務分配給客戶端和服務器端。當服務器端被啟動后,就時刻等待響應客戶端程序發來的請求;當運行在個人電腦上的客戶端程序需要服務器提供數據或服務時,就會自動地尋找服務器程序,并向其發出請求,服務器程序根據預定的規則做出應答,然后送回結果。

(2)界面容易實現。C/S 模型可以充分利用系統資源,因為客戶端是基于操作系統的應用程序,所以可以利用一些系統控件(如字體對話框、顏色對話框等)。VB 和 Delphi等一些可視化編程可以輕松地實現窗體設計。

任何事物都有兩面性,C/S 在網絡不這么發達的時候,優勢比較明顯。但隨著網絡的發展,其缺點也顯露出來:

(1)應用受到限制。無論是Client端還是Server端,都需要特定的軟件支持,客戶端需要一定的軟件平臺的限制。比如:用戶可能用的是不同的操作系統如Windows、Linux,這樣就要給不同的平臺開發不同的客戶端。如果用Java之類的面向對象開發語言,可以調用系統控件的優勢就不存在了,而且Java在圖形化(GUI)編程方面不是太方便。

(2)不易維護。首先,服務器端的程序與客戶端的程序都需要維護,如果軟件需要升級,會帶來更大麻煩,尤其是不同的操作平臺(如Windows)可能會有一些系統漏洞。其次,在庫戶端和服務器端保持數據的同步需要保持網絡的實時連接,增加了系統開銷。

(3)不利于使用。在安裝過客戶端的電腦上才可以使用,不能直接調用服務器的程序。這一點現在不好理解,待讀者學習完B/S模式后就會一目了然。

1.1.2 B/S模式

B/S模式(Browser/Server)也就是通過瀏覽器來訪問服務器,如圖1.2所示。用戶可以在互聯網的任何一個角落,甚至可以是個無線終端(PDA 等)。B/S 模式所用的業務邏輯及數據支持都在服務器上,當用戶通過頁面提出請求時,服務器及時響應,并把運行后的數據及時送回。

圖1.2 B/S模型圖

B/S模型的優勢:

(1)易于維護?;贐/S模型的系統當需要升級或維護時,只需修改服務器程序即可。

(2)易于實現。B/S模型的表現層可以用制作網頁的HTML(超文本標記語言)來實現,瀏覽器和網頁設計技術已經相當成熟。而且用Java技術開發的Web系統可以安裝在任意一種服務器系統平臺上,也就是常說的具有跨平臺性。

(3)使用方便。無論客戶在什么地方,只要服務器正在運行,客戶就能通過網絡進行連接,實現對數據的訪問和操作。

B/S 模型的不利因素:增加了服務器的壓力。把業務實現都放在服務器上,當有大量的用戶訪問時,勢必給服務帶來很大的負擔,更有可能造成系統崩潰,所以一定要做好系統數據的備份。

1.1.3 Java Web開發的優勢

通過前面對B/S模型和C/S模型的對比可以知道,B/S模型的優點能夠解決C/S模型的不足,同時隨著計算機硬件的不斷發展和網絡技術的提高,彌補了B/S模型給服務器增加了壓力的這個缺陷。正是因為這樣,基于B/S模型的系統模式成為系統開發的主要趨勢。

Java Web是指用Java技術進行基于B/S模式的Web應用系統開發。這樣的系統具有Java的基本特性:

面向對象?,F實世界中的任何實體都可以作為對象,對象之間通過消息相互作用。另一方面,現實世界中的任何實體都可以屬于某類事物,任何對象都是某一類事物的實例(具體化)。傳統的過程編程語言以過程為中心、以算法為驅動,面向對象的編程語言則以對象為中心、以消息為驅動。所有面向對象編程都支持三個概念:封裝、多態和繼承。

可移植性強:編譯成字節碼文件的Java程序,可以運行在任何Java版本的虛擬機上。同時,HTML(超文本標記語言)是通過瀏覽器解釋執行的,所以,用 Java開發的系統可以運行在任何操作系統平臺上。

安全性能高。在任何一臺機器上運行Java程序,必須擁有相應的權限。Java安全模型是沙箱模型,運行在JVM上。Java的安全性有下列三個方面保證:語言特性(數組的邊界檢查、類型轉換、引用替代了指針)、資源控制(本地文件系統訪問、連接訪問網絡等)、代碼檢驗(通過數字簽名來確認代碼源及源代碼是否完整)。

并發性。Java的多線程技術允許多個線程并發執行。

除了上述原因以外,Sun和IBM及一些開源社區的技術,使得Java這門技術飛速發展,在Web開發中的應用更是豐富多彩。

主站蜘蛛池模板: 合阳县| 饶河县| 郎溪县| 和田市| 内丘县| 武邑县| 南宫市| 当雄县| 嵩明县| 祥云县| 景洪市| 廊坊市| 正阳县| 广东省| 县级市| 汝州市| 梅州市| 陕西省| 眉山市| 花莲市| 临湘市| 石家庄市| 黎川县| 安达市| 衡阳县| 福清市| 祁门县| 广丰县| 田阳县| 衡水市| 通辽市| 河源市| 来凤县| 清徐县| 蓝山县| 焦作市| 库尔勒市| 泸州市| 双牌县| 正阳县| 通化市|