一、Servlet的特點
高效
友善
Servlet提供了大量的實用工具例程,例如自動地解析和解碼HTML表單資料、讀取和設定HTTP頭、處理Cookie、跟蹤會話狀态等。
功能強大
在Servlet中,許多使用傳統CGI程式很難完成的任務都可以輕松地完成。例如,Servlet能夠直接和Web伺服器互動,而普通的CGI程式不能。Servlet還能夠在各個程式之間共享資料,使得資料庫連接配接池之類的功能很容易實作。
可移植性好
Servlet用Java編寫,Servlet API具有完善的标準。是以,為I-Planet Enterprise Server寫的Servlet無需任何實質上的改動即可移植到Apache、Microsoft IIS或者WebStar。幾乎所有的主流伺服器都直接或通過插件支援Servlet。
節省投資
不僅有許多廉價甚至免費的Web伺服器可供個人或小規模網站使用,而且對于現有的伺服器,如果它不支援Servlet的話,要加上這部分功能也往往是免費的(或隻需要極少的投資)。
二、Servlet的主要功能
Servlet的主要功能在于互動式地浏覽和修改資料,生成動态Web内容。這個過程為:
伺服器将請求資訊發送至Servlet
Servlet生成響應内容并将其傳給Server。響應内容動态生成,通常取決于用戶端的請求
伺服器将響應傳回給用戶端
三、JAVA Servlet的優勢
采用Servlet,伺服器可以完全授權對本地資源的通路(如資料庫),并且Servlet自身将會控制外部使用者的通路數量及通路性質
Servlet可以是其它服務的用戶端程式,例如,它們可以用于分布式的應用系統中,可以從本地硬碟,或者通過網絡從遠端硬碟激活Servlet。
Servlet可被連結(chain)。一個Servlet可以調用另一個或一系列Servlet,即成為它的用戶端。
采用Servlet Tag技術,可以在HTML頁面中動态調用Servlet。
Servlet API與協定無關。它并不對傳遞它的協定有任何假設。
Servlet提供了Java應用程式的所有優勢——可移植、穩健、易開發。使用Servlet 的Tag技術,Servlet能夠生成嵌于靜态HTML頁面中的動态内容。
一個Servlet被用戶端發送的第一個請求激活,然後它将繼續運作于背景,等待以後的請求。每個請求将生成一個新的線程,而不是一個完整的程序。多個客戶能夠在同一個程序中同時得到服務。一般來說,Servlet程序隻是在Web Server解除安裝時被解除安裝。
四、Servlet生命周期
裝載Servlet。這項操作一般是動态執行的。然而,Server通常會提供一個管理的選項,用于在Server啟動時強制裝載和初始化特定的Servlet。
Server建立一個Servlet的執行個體
Server調用Servlet的init()方法
一個用戶端的請求到達Server
Server建立一個請求對象
Server建立一個響應對象
Server激活Servlet的service()方法,傳遞請求和響應對象作為參數
service()方法獲得關于請求對象的資訊,處理請求,通路其他資源,獲得需要的資訊
service()方法使用響應對象的方法,将響應傳回Server,最終到達用戶端。service()方法可能激活其它方法以處理請求,如doGet()或doPost()或程式員自己開發的新的方法
對于更多的用戶端請求,Server建立新的請求和響應對象,仍然激活此Servlet的service()方法,将這兩個對象作為參數傳遞給它。如此重複以上的循環,但無需再次調用init()方法。一般Servlet隻初始化一次 ,當Server不再需要Servlet時(一般當Server關閉時),Server調用Servlet的Destroy()方法。
本文轉自kenty部落格園部落格,原文連結http://www.cnblogs.com/kentyshang/archive/2007/01/16/621650.html如需轉載請自行聯系原作者
kenty