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