什么是 Servlet 容器?
目錄
1、什么是 Web 服務器?
2、什么是 Servlet 容器?
3、什么是 Servlet?
4、Servlet 容器和 Web 服務器如何處理一個請求的?
5、JVM 的作用
我們簡單的談一談關于?Web?服務器,?Servlet 容器及其與?JVM 的關系。其實?Servlet 容器只不過是一個 Java 程序。
1、什么是 Web 服務器?
想要了解什么是 Servlet 容器,首先需要知道什么是 Web 服務器。
Web 服務器使用 HTTP 協議傳輸數據。在一般情況下,用戶在瀏覽器(客戶端)中鍵入 URL(例如www.baidu.com/static.html),并獲取要讀取的網頁。所以服務器所做的就是向客戶機發送一個網頁。信息的交換采用指定請求和響應消息的格式的 HTTP 協議。
2、什么是 Servlet 容器?
正如我們看到的,用戶/客戶端只能從服務器請求靜態網頁。如果用戶希望根據自己的輸入閱讀網頁,那么這還不夠好。Servlet 容器的基本思想是使用 Java 動態生成服務器端的網頁。所以 Servlet 容器本質上是與 Servlet 交互的 Web 服務器的一部分。
“Servlet 容器”是一個裝載一堆 Servlet 對象的“器具”(容器),并且具備管理這些對象的功能。
3、什么是 Servlet?
Servlet?是 javax.servlet 包中定義的接口。它聲明了 Servlet 生命周期的三個基本方法:init()、service() 和 destroy()。它們由每個 Servlet Class(在 SDK 中定義或自定義)實現,并由服務器在特定時機調用。
- init() 方法在 Servlet 生命周期的初始化階段調用。它被傳遞一個實現 javax.servlet.ServletConfig 接口的對象,該接口允許 Servlet 從 Web 應用程序訪問初始化參數。
- service() 方法在初始化后對每個請求進行調用。每個請求都在自己的獨立線程中提供服務。Web容器為每個請求調用 Servlet 的 service() 方法。service() 方法確認請求的類型,并將其分派給適當的方法來處理該請求。
- destroy() 方法在銷毀 Servlet 對象時調用,用來釋放所持有的資源。
從 Servlet 對象的生命周期中,我們可以看到 Servlet 類是由類加載器動態加載到容器中的。每個請求都在自己的線程中,Servlet 對象可以同時服務多個線程(線程不安全的)。當它不再被使用時,會被 JVM 垃圾收集。
像任何Java程序一樣,Servlet 在 JVM 中運行。為了處理復雜的 HTTP 請求,Servlet 容器出現了。Servlet 容器負責 Servlet 的創建、執行和銷毀。
4、Servlet 容器和 Web 服務器如何處理一個請求的?
5、JVM 的作用
Servlet 允許 JVM 在處理每個請求時使用單獨的 Java 線程,這是 Servlet 容器的一個主要優點。每個 Servlet 是一個 Java 類,具有響應 HTTP 請求的特殊元素。
Servlet 容器的主要功能是將請求轉發到正確的 Servlet 進行處理,并在 JVM 處理完后將動態生成的結果返回到正確的位置。
在大多數情況下, Servlet 容器在單個 JVM 中運行,但是當容器需要多個 JVM 時,會有一些其它的解決方案。
?
英文原文:https://dzone.com/articles/what-servlet-container
總結
以上是生活随笔為你收集整理的什么是 Servlet 容器?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#字符处理
- 下一篇: bzoj 3157 bzoj 3516