- Servlet/JSP深入詳解
- 孫鑫
- 717字
- 2019-01-01 14:48:23
1.2 Servlet與Servlet容器
Java Servlet(Java服務器小程序)是一個基于Java技術的Web組件,運行在服務器端,由Servlet容器所管理,用于生成動態的內容。Servlet是平臺獨立的Java類,編寫一個Servlet,實際上就是按照Servlet規范編寫一個Java類。Servlet被編譯為平臺獨立的字節碼,可以被動態地加載到支持Java技術的Web服務器中運行。目前Servlet規范最新的版本是2.5。
在上文中,出現了一個概念“Servlet容器”。那么什么是Servlet容器呢?Servlet容器有時候也叫做Servlet引擎,是Web服務器或應用程序服務器的一部分,用于在發送的請求和響應之上提供網絡服務,解碼基于MIME的請求,格式化基于MIME的響應。Servlet不能獨立運行,它必須被部署到Servlet容器中,由容器來實例化和調用Servlet的方法,Servlet容器在Servlet的生命周期內包容和管理Servlet。
在JSP技術推出后,管理和運行Servlet/JSP的容器也稱為Web容器。在本書中,Servlet容器、JSP容器,以及Web容器是同義的。
用戶通過單擊某個鏈接或者直接在瀏覽器的地址欄中輸入URL來訪問Servlet,Web服務器接收到該請求后,并不是將請求直接交給Servlet,而是交給Servlet容器。Servlet容器實例化Servlet,調用Servlet的一個特定方法對請求進行處理,并產生一個響應。這個響應由Servlet容器返回給Web服務器,Web服務器包裝這個響應,以HTTP響應的形式發送給Web瀏覽器。整個過程如圖1-3所示。

圖1-3 用戶訪問Servlet
與CGI程序相比,Servlet具有以下優點:
·Servlet是單實例多線程的運行方式,每個請求在一個獨立的線程中運行,而提供服務的Servlet實例只有一個。
·Servlet具有可升級性,能響應更多的請求,因為Servlet容器使用一個線程而不是操作系統進程,而線程僅占用有限的系統資源。
·Servlet使用標準的API,被更多的Web服務器所支持。
·Servlet使用Java語言編寫,因此擁有Java程序語言的所有優點,包括容易開發和平臺獨立性。
·Servlet可以訪問Java平臺豐富的類庫,使得各種應用的開發更為容易。
·Servlet容器給Servlet提供額外的功能,如錯誤處理和安全。