Java 中的 Servlet
本教程介紹了 servlet 是什麼以及如何在 Java 中建立 servlet。
什麼是小服務程式
Servlet 是一種伺服器端技術,用於在 Java 中建立 Web 應用程式。它建立動態 Web 應用程式並提供由多個類和介面組成的 API 來管理應用程式。
使用 Servlet 的優點
在 servlet 出現之前,CGI(通用閘道器介面
)程式用於建立存在多個效能問題的伺服器端程式。Servlet 比 CGI 具有優勢,並提供以下優點:
- 由於多執行緒概念而具有更高的效能
- 無平臺依賴性
- 便攜的
- 由於 Java 位元組碼,安全可靠。
在 Java 中如何建立一個 Servlet
有多種方法可以建立 servlet 應用程式,例如使用以下任何類或介面:
- 實現
Servlet
介面 - 繼承
GenericServlet
類 - 繼承
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