GenericServlet,HttpServlet和Servlet之间有什么区别?

2022-09-01 21:44:57

我一直在寻找 之间的确切区别,但无法找到它。javax.servlet.http.HttpServletjavax.servlet.GenericServletjavax.Servlet

“精确差异”是指

  1. 用法
  2. 存在背后的原因javax.servlet.GenericServlet

答案 1

“精确差异”是什么意思?该 API 列出了确切的差异。

Servlet 是一个定义 servlet 必须实现的接口。

GenericServlet 就是这样,一个通用的、独立于协议的 servlet。

HttpServlet 是一个专门绑定到 HTTP 协议的 servlet。

您是否在问何时会使用其中任何一个?

通常,您需要扩展以实现应用程序的 Web 层。HttpServlet

如果您正在编写自己的容器或自己处理所有内容,则可以实现。您可以扩展以处理其他协议,但可能不会。ServletGenericServlet


答案 2

javax.servlet

Servlet 是一种服务器端 Web 技术。顾名思义,它为客户端请求提供服务,并从服务器接收响应。你必须实现javax。Servlet(接口)来处理 Servlet 工作。

javax.servlet.GenericServlet

签名:

public abstract class GenericServlet extends java.lang.Object implements Servlet, ServletConfig, java.io.Serializable
  1. GenericServlet 定义了一个通用的、与协议无关的 servlet。
  2. GenericServlet 提供了一个蓝图,使编写 servlet 变得更加容易。
  3. GenericServlet 提供了生命周期方法 init 和 destroy 以及 ServletConfig 接口中的方法的简单版本。
  4. GenericServlet 实现了在 ServletContext 接口中声明的 log 方法。
  5. 要编写一个泛型 servlet,重写抽象 service() 方法就足够了。

javax.servlet.http.HttpServlet

签名:

public abstract class HttpServlet extends GenericServlet implements java.io.Serializable
  1. HttpServlet 定义了一个特定于 HTTP 协议的 servlet。
  2. HttpServlet为Http servlet提供了蓝图,并使编写它们更容易。
  3. HttpServlet 扩展了 GenericServlet,因此继承了 GenericServlet 的属性。

推荐