Java 中的 Servlet

Mohammad Irfan 2024年2月15日
  1. 什麼是小服務程式
  2. 使用 Servlet 的優點
  3. 在 Java 中如何建立一個 Servlet
  4. Servlet 的重要包
  5. Servlet 類
  6. 小服務程式介面
Java 中的 Servlet

本教程介紹了 servlet 是什麼以及如何在 Java 中建立 servlet。

什麼是小服務程式

Servlet 是一種伺服器端技術,用於在 Java 中建立 Web 應用程式。它建立動態 Web 應用程式並提供由多個類和介面組成的 API 來管理應用程式。

使用 Servlet 的優點

在 servlet 出現之前,CGI(通用閘道器介面)程式用於建立存在多個效能問題的伺服器端程式。Servlet 比 CGI 具有優勢,並提供以下優點:

  • 由於多執行緒概念而具有更高的效能
  • 無平臺依賴性
  • 便攜的
  • 由於 Java 位元組碼,安全可靠。

在 Java 中如何建立一個 Servlet

有多種方法可以建立 servlet 應用程式,例如使用以下任何類或介面:

  1. 實現 Servlet 介面
  2. 繼承 GenericServlet
  3. 繼承 HttpServlet

這些是用於建立 servlet 應用程式的一些類和介面。它們包含諸如 doPost()doGet() 之類的方法來處理 HTTP 請求。

servlet 應用程式遵循特定的目錄/專案結構,幷包含一些必需的步驟,例如:

  • 建立一個 servlet
  • 建立部署描述符
  • 將 servlet 應用程式部署到伺服器 (apache tomcat)。

如前所述,要建立 servlet,我們需要擴充套件 HttpServlet 類並覆蓋其方法。在這裡,我們使用 doGet() 方法來處理 Get 請求。

下面是一個基本的 servlet 程式碼。

建立一個小服務程式

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extending HttpServlet class
public class HelloServlet extends HttpServlet {
  private String msg;

  public void init() throws ServletException {
    // Do required initialization
    msg = "Hello Servlet";
  }

  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    // Setting content type for response
    response.setContentType("text/html");

    // printing msg to browser in h1 heading
    PrintWriter out = response.getWriter();
    out.println("<h1>" + msg + "</>");
  }

  public void destroy() {
    // code to execute while destroy servlet.
  }
}

輸出:

此 servlet 程式碼將向瀏覽器列印以下訊息。

服務程式

建立部署描述符

這是一個 XML 檔案,其中包含有關 servlet 的資訊,Web 容器從該檔案中獲取所有資訊。該檔案使用了幾個標籤,例如 <web-app><servlet><servlet-mapping> 等。

它們都用於設定容器的資訊。容器使用解析器來提取此資訊。

請參閱我們的 HelloServlet 類的 servlet 描述符 (web.xml)。

<web-app>  
  
<servlet>  
<servlet-name>HelloServlet</servlet-name>  
<servlet-class>HelloServlet</servlet-class>  
</servlet>
  
<servlet-mapping>  
<servlet-name>HelloServlet</servlet-name>  
<url-pattern>/helloservlet</url-pattern>  
</servlet-mapping>
  
</web-app>

建立此 XML 檔案後,編譯 servlet 檔案並將整個專案部署到 web 伺服器,例如 apache tomcat。這是一個 Web 應用程式,因此它需要一個伺服器才能執行。

部署專案後,啟動伺服器,通過輸入瀏覽器的對映 URL’helloservlet’來訪問 servlet。

Servlet 的重要包

Servlet API 包含兩個主要的包,它們包含所有的類和介面。

  • javax.servlet
  • javax.servlet.http

Servlet 類

這些是一些常用的 servlet 類:

  • GenericServlet
  • ServletInputStream
  • ServletOutputStream
  • ServletRequestWrapper
  • ServletResponseWrapper
  • ServletRequestEvent
  • ServletContextEvent
  • HttpServlet
  • Cookie
  • HttpServletRequestWrapper
  • HttpServletResponseWrapper
  • HttpSessionEvent

小服務程式介面

這些是一些常用的 servlet 介面:

  • Servlet
  • ServletRequest
  • ServletResponse
  • RequestDispatcher
  • ServletConfig
  • ServletContext
  • Filter
  • FilterConfig
  • FilterChain
  • ServletRequestListener
  • HttpServletRequest
  • HttpServletResponse
  • HttpSession
  • HttpSessionListener