Java 中的 Servlet 程序:面向初學者的 Servlet 教程 [2022]
已發表: 2021-01-02目錄
Java 小服務程序
它是一個 Java 編程語言類。 Java 中的 Servlet 程序運行在支持 Java 的 Web 應用程序或服務器上,用於處理從 Web 服務器接收到的請求,處理並產生對請求的響應,然後將響應發送回 Web 服務器。
這些 servlet 在服務器端工作。 它用於擴展服務器功能以託管應用程序以在編程中託管請求-響應模型。 它可以處理任何類型的請求,並且能夠有效地處理複雜的請求。
閱讀: Java 面試問答
使用 Java 使用的 Servlet 程序不依賴於該平台。 它根據接收到的客戶端請求的類型創建進程。 它在 JVM( Java 虛擬機)上運行。 Java Servlet 程序遵循 Java 字節碼。 Java Servlet 能夠抵抗攻擊。 其他優勢包括更快的速度、便攜性和效率。
它在處理腳本之前翻譯和編譯腳本。 Java Servlet 支持數據共享。 它可以直接與網絡服務器通信並處理 cookie。 它比 CGI(通用網關接口)等其他方法便宜
Java Servlet 架構
Java Servlet 體系結構包括通信接口、客戶端和服務器要求、使用的協議以及涉及的編程語言和軟件。

Java servlet 從客戶端瀏覽器讀取接收到的數據,這些數據可以是任何形式,例如 HTML(超文本標記語言)、自定義 HTTP(超文本傳輸協議)程序、applet 或隱式 HTTP 請求數據。 然後它通過與現有數據庫通信來處理接收到的數據,並在生成結果之前執行其他步驟。
該結果(數據或文檔)以各種格式發送給客戶端,例如文本(HTML 或 XML(可擴展標記語言))、圖像(二進制)。 最後,它向客戶端發送一個隱式的 HTTP 響應,以通知他們返回的文檔類型。
Java Servlet 生命週期的階段
Java Servlet 的生命週期分為四個階段,包括加載 Servlet、初始化 Servlet、處理請求和銷毀 Servlet。 Servlet 容器在 Web 服務器啟動時部署並加載所有接收到的 servlet。
它通過調用int()的方法來初始化 servlet 。 Servlet 實例成功實例化及其服務指示通過調用Servlet.init()方法來指示。 客戶端的請求由 Servlet 使用service()方法處理。 使用這種方法將客戶端請求通知給 Servlet。
最後,這個創建的 Servlet 通過調用destroy()作為 Servlet 實例結束的信號來終止。 int() 和 destroy() 方法在 Java Servlet 的生命週期中調用一次。 最後,JVM 垃圾收集器收集 servlet 垃圾並結束 servlet 的生命週期。
另請閱讀: Java 架構和組件解釋
Java Servlet的執行步驟
Servlet 使用六個基本步驟執行,如下所示:
- 客戶端將請求發送到 Web 應用程序/服務器。
- Web 應用程序/服務器接收請求。
- Web 應用程序/服務器將請求發送到適當的 servlet。
- servlet 在其生命週期中處理請求並生成響應作為輸出。
- servlet 將響應發送回 Web 應用程序/服務器。
- 最後,Web 應用程序/服務器將此請求發送回客戶端,客戶端的瀏覽器將其顯示在網頁上。
報名參加世界頂尖大學的在線軟件開發課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
Java Servlet 類和接口
儘管 Java Servlet 可以創建動態網頁,但此功能是由容器或 Web 服務器提供給網頁的。 獨立的 Web 服務器提供商提供專有的解決方案,如 API(應用程序編程接口)來滿足這一要求。

使用這些 API,可以使用 Web 服務器構建和運行程序。 Java Servlet 是 Java 平台企業版,它是在用 Java 創建的動態 Web 應用程序中設置標準的組件 API 之一。
Java Servlet API 有兩個重要的包來封裝所有重要的接口和類,如下所示:

- javax.servlet(基本)
- Javax.servlet.http(高級)
下表包含 Java Servlet 的幾個重要類和接口。
小服務程序 | 類型 | 包裹 | servlet 的 LifeCycle 方法聲明 |
ServletConfig | 界面 | javax.servlet | 它允許 servlet 進行初始化方法 |
Servlet上下文 | 班級 | javax.servlet | 它使 servlet 能夠記錄訪問和訪問信息 |
Servlet請求 | 界面 | javax.servlet | 它用於從客戶端請求中讀取數據 |
小服務程序響應 | 界面 | javax.servlet | 它用於將數據寫入客戶端的響應 |
GenericServlet | 班級 | javax.servlet | 它實現了 Servlet 和 Servlet.config 接口 |
Servlet輸入流 | 班級 | javax.servlet | 它提供輸入流來讀取從客戶端接收到的請求 |
Servlet 輸出流 | 班級 | javax.servlet | 它提供了一個輸出流來向客戶端寫入響應 |
Servlet異常 | 班級 | javax.servlet | servlet 不可用的指示 |
HttpServlet | 界面 | javax.servlet.http | 處理 HTTP 請求和響應的方法 |
Servlet 容器
它是一組集成的對象,為 Java Servlet 組件提供運行時環境。 它提供網絡、解碼和編碼基於 MIME(多用途 Internet 郵件擴展)的消息、Servlet 容器管理、資源和會話管理以及安全服務等服務。
必讀:有趣的 Java 項目和主題
結論
因此,Java Servlet 用於在 Web 服務器上處理客戶端請求時實現動態網頁,同時提高速度和靈活性。
如果您有興趣了解有關 Java、OOP 和全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發執行 PG 計劃,該計劃專為工作專業人士設計,並提供 500 多個小時的嚴格培訓, 9 個以上的項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。
什麼是 Java?
Java 作為一種編程語言是一種通用的計算機編程語言,它本質上是同步的、基於類的和麵向對象的。 Java 語言開發的目標是盡可能減少實現約束。 一次編寫,隨處運行 (WORA) 概念支配著 Java 編程語言,這意味著一旦構建了代碼,就可以在任何與 Java 兼容的平台上運行該代碼,而無需重寫。 Java 是一種靜態類型的編程語言,用於 Web 開發、企業級應用程序、Android 開發和物聯網 (IoT)。
Java Servlet 與通用網關接口相比有哪些優勢?
與通用網關接口相比,Java Servlet 具有顯著的優勢 (CGI)。 Servlet 優於 CGI 的第一個也是最本質的優勢是 Servlet 比 CGI 具有更好的性能。 與 CGI 不同,無需為每個客戶端請求構建不同的進程。 Servlet 僅在 Web 服務器的地址空間內執行。 由於 Servlet 是用 Java 創建的,因此它們是獨立的平台。 服務器上的 Java 安全管理器施加了一組約束來保護服務器的資源。 因此,servlet 可能是可信的。 servlet 可以訪問 Java 類庫的全部功能,而 CGI 不能訪問整個庫。
Servlet 的實際用例是什麼?
Servlet 主要用於 HTML 和 HTTP。 它們用於讀取瀏覽器顯式發送的數據。 這可能是網頁上的 HTML 表單、應用程序或定制的 HTTP 客戶端軟件的形式。 他們還可以訪問瀏覽器的隱式 HTTP 請求數據。 這包含瀏覽器支持的 cookie、媒體類型和壓縮算法等。 他們是處理數據並得出結果的人。 在此過程中,可能都需要與數據庫交談、進行 RMI 或 CORBA 調用、聯繫 Web 服務或直接計算響應。 它們還用於向瀏覽器提供顯式數據,例如文檔。 該文檔可能以多種不同的形式交付,包括文本、二進制、圖片、Excel 等。