前 24 個 Servlet 面試問題和答案

已發表: 2021-06-03

servlet 是一種基於 Java 的軟件,它擴展了服務器的功能。 它是任何服務器的重要組成部分,因為它們響應容器請求和託管 Web 應用程序。 要運行網站的後端,也就是服務器端,您需要熟悉 servlet 及其操作方式。

由於基於 Java 的服務器非常流行,因此如果您想使用 Web 服務器,了解 servlet 是必不可少的。

如果您正在準備開發人員面試,那麼您來對地方了。 以下 servlet 面試問題將讓您對面試的期望有所了解。

目錄

頂級 Servlet 面試問題列表

  1. Servlet 是什麼意思?

Ans: Servlet 是 Java 技術,管理它們的容器稱為 servlet 引擎。 servlet 生成動態內容並通過請求和響應與客戶端交互。 它們通常在您單擊鏈接或在網站上執行任何類型的操作時運行。 Servlet 類似於 applet,但不同之處在於它們是在服務器上處理的,而 applet 是在客戶端機器上處理的。

  1. 什麼是 servlet 容器?

答: Servlet 容器是提供網絡服務的 Web 服務器的一部分。 它們依賴於基於 MIME 的請求和響應。 servlet 容器處理 servlet。

  1. 為什麼我們使用 servlet?

Ans:通常,我們使用 servlet,因為它們是平台無關的。 此外,它們被編譯成與平台無關的字節碼。 您可以將 Java 字節碼動態加載到啟用 Java 的 Web 服務器中。

  1. 你說的過濾器是什麼意思?

答:過濾器是可重用的代碼片段,可以轉換 HTTP 請求、響應和標頭的內容。

  1. 應用程序服務器和 Web 服務器有什麼區別?

Ans: Web 服務器處理來自客戶端瀏覽器的 HTTP 請求並以 HTML 響應進行響應。 它處理 HTTP 語言並在 HTTP 協議上運行。

另一方面,應用程序服務器提供附加功能,例如 JMS 消息支持、企業 JavaBeans 支持等,以及 Web 服務器的基本功能。

  1. 會話是什麼意思?

Ans:會話是指一段時間。 在 servlet 中,會話是 servlet 用於跨多個 HTTP 請求跟踪用戶與 Web 應用程序交互的對象。

  1. servlet 上下文是什麼意思?

Ans: Servlet 上下文定義了一組 servlet 用來與其 servlet 容器通信的方法。 servlet 容器創建此對像以將初始配置或參數共享給整個應用程序

您可以使用 getServletContext() 方法獲取 ServletContext 對象。 一個應用程序只有一個 servlet 上下文。 您可以使用 ServletContext 在整個應用程序中共享信息。

注意:這是最重要的 servlet 面試問題和答案之一。

  1. servlet 映射是什麼意思?

Ans: Servlet 映射為您提供了特定的 Web 容器,應該為特定的 URL 調用該容器的 java servlet。 它將 URL 模式映射到 servlet。 當客戶端發送請求時,servlet 容器確定將其轉發到哪個應用程序,系統匹配上下文路徑以執行 servlet 映射。

  1. 將新數據輸入數據庫後如何自動刷新?

Ans:您可以在服務器推送和客戶端中使用刷新來在將新數據輸入數據庫時自動刷新。

  1. 解釋 servlet 的生命週期。

Ans: servlet 的生命週期分為五個步驟。 首先,加載 servlet 類,然後創建 servlet 實例。 之後,調用 init() 方法,然後調用 service 方法,最後調用 destroy() 方法。 一個 servlet 具有三種狀態:new、ready 和 end。

servlet 在創建時將處於新狀態。 調用 init() 方法後,它進入就緒狀態。 最後,當調用 destroy() 方法時,它進入結束狀態。

  1. Servlet 2.5 中添加了哪些新功能?

Ans: Servlet 2.5 帶有以下新特性:

  • J2SE 5.0 依賴
  • 註釋支持
  • 類加載
  • 新的 web.xml
  • 邊緣案例說明
  • 解除限制
  1. 所有 servlet 都實現(或應該實現)哪個接口?

Ans:所有的 servlet 都必須實現 servlet 接口。

  1. servlet 何時加載?

Ans:一個 servlet 在以下情況下被加載:

  • 發出第一個請求。
  • 服務器和自動加載啟動。
  • 單個實例同時響應所有請求,從而節省內存。
  • 管理員手動加載。
  1. 什麼時候卸載 servlet?

Ans:當服務器關閉或管理員手動卸載時,servlet 被卸載。

  1. MIME 類型是什麼意思?

答: MIME 代表多用途 Internet 郵件擴展。 MIME 類型是一個 HTTP 標頭,它提供有關我們發送到瀏覽器的信息的信息。 它幫助客戶端進行數據渲染。 常見的 MIME 類型有文本 (HTML)、文本 (plain)、圖像 (jpeg)、應用程序 (jar) 等。

要獲取特定文件的正確 MIME 類型,可以使用 ServletContext getMimeType() 方法。 它在通過 servlet 從服務器下載文件時派上用場。

  1. POST 和 GET 方法有什麼區別?

Ans: POST 和 GET 方法的主要區別在於 POST 方法在消息正文中攜帶響應參數,而 GET 方法攜帶附加在 URL 字符串中的響應參數。

  1. Web 應用程序是什麼意思?

答: Web 應用程序是在服務器上運行的模塊,用於向客戶端瀏覽器提供動態和靜態內容。 Apache Web 服務器支持 PHP,您可以使用它創建 Web 應用程序。

Java 通過 JSP 支持 Web 應用程序,並且在 servlet 容器中運行的 servlet 向客戶端瀏覽器提供動態內容。

  1. 與 CGI 相比,servlet 提供了哪些優勢?

Ans: CGI 技術有很多缺點。 Servlet 被引入來克服同樣的問題。

Servlet 在利用內存和處理時間方面提供了比 CGI 更好的性能。 他們利用多線程的好處,為每個請求創建一個新線程,大大提高了速度。 相比之下,CGI 為每個請求創建一個新對象,這比 servlet 的進程相對慢。

Servlet 獨立於系統和平台。 您可以在任何標準 Web 容器(Glassfish、Tomcat 和 JBoss)和操作系統(Unix、Windows、Mac 等)上運行基於 servlet 的 Web 應用程序。

servlet 的學習曲線非常小,因為您只需要處理應用程序的業務邏輯。 此外,他們的容器處理 servlet 的生命週期,因此不存在內存洩漏、垃圾收集和安全性的風險。

  1. 你對 ServletConfig 對象了解多少?

答:您使用 ServletConfig 對象將配置信息提供給特定的 servlet。 每個 servlet 都有一個唯一的 ServletConfig 對象,並且 servlet 容器實例化它。 您可以通過 WebInitParam 註解給 servlet 初始化參數。 要獲取 servlet 的 ServletConfig 對象,您必須使用 getServletConfig() 方法。

  1. servlet 容器通常執行哪些任務?

Ans: servlet 容器執行以下任務:

  • 它促進了 servlet、JSP 和 Web 客戶端之間的通信。 由於容器,您不必構建服務器套接字來接收請求、解析它們並生成響應。 容器負責這些任務,讓您可以專注於業務邏輯。
  • servlet 容器處理 servlet 的生命週期。 它將 servlet 加載到內存中,初始化它們,調用必要的方法並銷毀它們。 Servlet 容器還通過提供 JNDI 等實用程序來簡化資源管理。
  • Servlet 容器為每個請求創建新線程,並為 Servlet 提供請求和響應對象。 這樣,您不必為每個請求初始化 servlet,從而節省大量內存和時間。
  • Servlet 編譯 JSP 並將它們轉換為 servlet 以像 servlet 一樣管理它們,從而簡化您的任務。
  1. 請求調度程序是什麼意思?

Ans:您使用 RequestDispatcher 接口將請求轉發到另一個資源。 該資源可以是應用程序中的另一個 servlet、HTML 或 JSP。 您可以使用 RequestDispatcher 接口將另一個資源的內容添加到您的響應中。 它是 servlet 間通信的絕佳解決方案。

您可以在 RequestDispatcher 接口中定義兩個方法:

  • 無效前向方法。 它將請求從一個 servlet 轉發到不同的資源。
  • void 包含方法。 它將另一個資源的內容添加到您的響應中。
  1. ServletContext 和 ServletConfig 有什麼區別?

Ans: ServletContext 是整個應用程序的唯一對象,而 ServletConfig 是 servlet 的唯一對象。 您可以使用 ServletContext 為整個應用程序提供初始化參數,所有 servlet 都可以使用這些參數。 另一方面,您可以使用 ServletConfig 僅向特定的 servlet 提供初始化參數。

可以在 ServletContext 中設置屬性,其他 servlet 可以使用,但不能在 ServletConfig 中選擇屬性。

注意:這是最重要的 servlet 面試問題和答案之一。 你應該仔細準備它。

  1. 你對 servlet 屬性了解多少?

Ans: Servlet 屬性可以幫助您進行 Servlet 間的通信。 您可以在應用程序中設置、獲取和刪除屬性。 Servlet 屬性具有三個作用域,請求作用域、會話作用域和應用作用域,即。 它們與初始化參數不同。

  1. 你將如何從另一個 servlet 調用一個 servlet?

Ans:您可以使用 RequestDispatcher forward() 將請求處理轉發到不同的 servlet。 如果要向響應添加另一個 servlet 輸出,可以使用 RequestDispatcher 的 include() 方法。

從世界頂級大學在線學習軟件課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

上面的 servlet 面試問題和答案應該可以幫助你理解面試會問你什麼樣的問題。 我們建議將此頁面添加為書籤,以便您稍後返回並多次修改問題。

面試時盡量保持冷靜和沈著。 它將幫助您仔細聆聽問題並相應地回答問題。 您可以查看我們軟件開發執行 PG 計劃,專攻全棧開發,以了解有關 Java 及其相關主題的更多高級概念。

Java 中的 servlet 是什麼?

servlet 是可以由 HTTP 服務器調用的 Java 類。 Servlet 通常用於 Web 應用程序的開發。 servlet 的主要目的是處理來自 HTTP 客戶端的請求並返回合適的響應。 servlet 有很多種類型,但最流行的一種是 Java Server Pages (JSP),因為它們可用於創建動態 Web 內容。

Java servlet 中的請求-響應如何工作?

服務器使用 servlet 來響應用戶的請求。 servlet 可用於從數據庫下載信息、發送電子郵件或顯示信息。 它是一個為服務器執行特定任務的小程序。 Servlet 是用 Java 編寫的,並被編譯成一個單獨的類文件。 然後,將它們部署到 Web 服務器。 部署後,servlet 就可以接受來自用戶的請求了。 請求可以是從用戶單擊鏈接到用戶填寫表單的任何內容。 請求被發送到服務器,在該服務器上它被路由到適當的 servlet。 然後,servlet 處理請求並發送迴響應。 此響應可能因請求類型而異。 例如,如果用戶正在請求信息,則 servlet 可以將該信息返回給用戶。 如果 servlet 正在響應表單請求,它可以向用戶發送確認電子郵件或有關提交的通知。

servlet 的生命週期是什麼?

可以說一個 servlet 在其生命週期中具有三個階段: 1. 加載 2. 執行 3. 銷毀。 在加載過程中,servlet 接收一些初始化參數。 這些參數在部署描述符中定義。 加載完成後,servlet 容器可以通過多種方式調用 servlet——通過調用它的 init() 方法、通過 ajax 調用或通過生命週期事件。 下一個也是最後一個階段是銷毀,即從容器中刪除 servlet。 有幾種方法可以從 servlet 容器中刪除 servlet,例如,當容器停止時,或 Web 應用程序停止時。