標籤:des style blog java http ext
一、 什麼是Servlet
這裡所討論的Servlet,準確的說,應該是javax.servlet.http.HttpServlet,它是伺服器收到請求之後調用的,專門用來響應HTTP請求,並且提供了響應請求的doGet()和doPost()方法. 它本質上來說就是一個java類,只不過它是運行在伺服器上的java類.它具有獨立於平台和協議的特性,可以產生動態Web頁面. 它擔當客戶請求(Web瀏覽器或其他HTTP客戶程式)與伺服器響應(HTTP伺服器上的資料庫或應用程式)的中介層。
Java Servlet API 定義了一個servlet 和Java使能的伺服器之間的一個標準介面,這使得Servlets具有跨伺服器平台的特性。 Servlet 通過建立一個架構來擴充伺服器的能力,以提供在 Web 上進行請求和響應服務。當客戶機發送請求至伺服器時,伺服器可以將請求資訊發送給 Servlet,並讓 Servlet 建立起伺服器返回給客戶機的響應。 當啟動 Web 伺服器或客戶機第一次請求服務時,可以自動裝入 Servlet。裝入後, Servlet 繼續運行直到其它客戶機發出請求。
二、 Servlet生命週期
先:
b) 生命全過程
i. 載入Servlet並執行個體化(new),同時初始化(init)
servlet第一次被請求載入時,伺服器初始化這個servlet,即建立一個servlet對象,這對象調用init方法完成必要的初始化工作。
ii. 處理請求(service→doGet/doPost)
誕生的servlet對象再調用service方法響應客戶的請求。根據請求,service會調用doGet()或doPost()進行處理.
iii. 退出服務(destroy)
當伺服器關閉時,調用destroy方法,消滅servlet對象。
c) 注意事項
i. Servlet只執行個體化一次
ii. Init方法也只執行一次
iii. Servlet不是安全執行緒的
即init方法只被調用一次,即在servlet第一次被請求載入時調用該方法。當後續的客戶請求servlet服務時,Web服務將啟動一個新的線程,在該線程中,servlet調用service方法響應客戶的請求,也就是說,每個客戶的每次請求都導致service方法被調用執行。
三、 Servlet類與普通Java類的區別
Servlet是位於Web 伺服器內部的伺服器端的Java應用程式,與傳統的從命令列啟動的Java應用程式不同,Servlet由Web伺服器進行載入,該Web伺服器必須包含支援Servlet的Java虛擬機器,下面對Servlet類與普通Java類進行了一個簡單的對比:
四、總結
新知識的學習我們總是想方設法與現有的舊知識進行類比,再高明一點的話可以直接用生活化的語言解釋清楚。而我學習java不久,只能從現在的知識中尋找以前的影子,下面的這張圖是近來學習Servlet時想到的將.NET與JAVA對比,不足之處還請大家不吝指教:
一對比就會發現它們雖然屬於不同的平台,使用不同的語言,但本質就很相像了,。依樣畫葫蘆,以後上手的話就可以快很多了。本篇部落格只限於對servlet的淺顯認知,下篇將使用一個小例子說明Servlet的基本原理,敬請期待~