最近一般時間由於項目的原因,對servlet接觸比較多,對servlet有一定的深入,故記錄下來,以免遺失在知識的海洋之中。
我們知道,http串連是一個無狀態的串連,但要想真正理解它還不是一件很容易的事情。HTTP協議是基於請求/響應範式的。一個客戶機與伺服器建立串連後,發送一個請求給伺服器,請求方式的格式為,統一資源識別項、協議版本號碼,後邊是MIME資訊包括請求修飾符、客戶機資訊和可能的內容。伺服器接到請求後,給予相應的響應資訊,其格式為一個狀態行包括資訊的協議版本號碼、一個成功或錯誤的代碼,後邊是MIME資訊包括伺服器資訊、實體資訊和可能的內容。許多HTTP通訊是由一個使用者代理程式初始化的並且包括一個申請在原始伺服器上資源的請求。
客戶機向伺服器提出一個http請求,伺服器就向客戶機回複此請求,這裡我們將請求定義為request,回複定義為response,只要遵守請求和響應的規範,客戶機的伺服器可以互相不必要知道對方是什麼,怎麼實現的。比如,如果你用IE瀏覽器請求如下格式的某個URL地址:http://www.jboss.org/index.html不要以為伺服器上的是一個靜態文本,事實上,它是一個servlet,只是副檔名用了html,在servlet伺服器中,可以用任何副檔名來作為訪問標誌,只是你的客戶機是否認識這個副檔名,它可管不了。
請求(request)通常包括了一個要求標頭,這裡麵包括了客戶機的一些資訊,如客戶機裝置類型,客戶機IP地址等,通過分析這些資訊(在伺服器端)你可能會有意外的驚喜。每一次http請求伺服器端都會得到客戶機的request資訊,同時你可以在伺服器端向客戶機發出響應(response),這些響應同樣可以影響到客戶機的眾多特性。
比如:在wap應用中,你可以從http請求中得到使用者的手機號碼,你可以得到使用者的瀏覽器類型和支援的編碼方式,在向客戶機響應之前,你可以做很多的工作,根據需要可以進行內容壓縮,可以在輸出之前進行特定的編碼,可以將請求傳來的資料根據需要進行編碼以得到正確的格式等等。在這樣的一個項目中,客戶機得到的可以是.wml副檔名,事實上伺服器全部是由servlet構成的。wap應用可以說是servlet表現的最佳場所,因為客戶機表現能力差,而這正好可以充分利用伺服器的強大構造力,營造功能強大的wap應用。而web應用則採用經典的MVC模式,與之配合可以打造一個經典的應用。