servlet_5

再說說BS吧,現在的流行,其實它就是CS啦,後來出現的很多都是CS啦。就像老師說的一樣,討厭術語,把握實質。
BS就是用瀏覽器來做客戶端工具而已。知道了它們實質上是相同的,但是這當然不夠,它之所以稱爲BS也是有原因的,於是我們需要把握它與CS之間的區別。個人認爲,不同的是構架設計不同了,而不是B和C的不同。BS的出現,是帶着三層體系結構出來的。而之前的CS是二層體系結構,這是一個發展。哪三層呢?一客戶端,二web服務器,三數據庫服務器。大框架的解耦。這方面的知識可以從張寧老師的電子服務概念學習到一些。之後出現的N層,你就應該理解到其實就是一個解耦,把功能模塊抽出來做一層。比如,可以把邏輯層又專門抽出來,這樣就出現了RMI和EJB和COBRA集合的業務邏輯層,它們專門並只處理業務邏輯。

說個題外話,就是PC的出現,帶來的一個問題。這個是從杭老師的數據倉庫課上聽到的(呵呵,我上課並不是很用心,但是會抓那種靈機的話語聽),老師說PC的出現,導致數據的個人化,就是原本的數據都是存儲在中央機上的,PC後,很多的數據都是存在個人的PC上,於是我們就需要用一個數據倉庫來把所有的有用的數據收集起來,通過建模存儲到數據倉庫服務器上,供智能的決策支持。

又說了這麼多的廢話,但是至少我希望你通過上面的那些知道了web服務器是幹嗎的。它是負責和客戶端交互的,僅此而已,並不承擔業務邏輯的處理。我說了這麼多,就是要你把業務邏輯從web服務器中分層出來。

那麼設計問題就出來了,C知道了,是瀏覽器,那麼我們該如何設計這個web服務器呢?讓我們來模擬一下基本的場景。

首先有個網絡數據傳輸,這個是我們不需要了解細節的,只要知道有一個它就行。只不過那個幾層還是需要稍微的瞭解一些,HTTP,TCP、IP這幾個概念是需要了解一些的。特別是HTTP協議。因爲很簡單,你說兩個東西要交互,那總得在一個約定的相互識別,也就是協議的層面上交互吧,底層的數據傳輸層的TCPIP協議不需要了解太多。
這樣就知道了瀏覽器和web服務器端是在HTTP協議上進行交互的。就是客戶端發送數據過來,服務器知道它是符合HTTP協議的,服務器就通過HTTP協議去識別讀出那些數據。經過處理後,返回數據給瀏覽器,瀏覽器同樣的讀取數據,然後就是瀏覽器的show功能了,它拿到返回的數據,需要轉換成用戶看上去很舒暢的方式啊,也就是HTML了。

知道了上面這些,你都可以去設計IE了,呵呵,開玩笑的。但至少,對於我們的Servlet,你就應該知道該做些什麼了。第一,你要知道HTTP協議,第二,讀取數據,第三把數據發給業務邏輯服務器,第四,把業務邏輯返回的數據發送給瀏覽器。

知道了這個流程,差不多,可以知道Servlet的API應該做什麼了,你是app開發人員,你只關心數據本身,至於怎麼收怎麼放的網絡層面的編程你就不想管了,這樣Servlet的API該管的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章