GenericServlet 和 HttpServlet 有什么区别

目录:

Anonim

主要区别 GenericServlet 和 HttpServlet 之间是 GenericServlet 与协议无关,可以与任何协议一起使用,例如 HTTP、SMTP、FTP 和 CGI​​,而 HttpServlet 是协议相关的,只能与 HTTP 协议一起使用。

Servlet 是一种 Java 技术,可帮助开发可扩展且健壮的 Web 应用程序。它是一个独立于平台的服务器端组件。此外,可以使用三种方法编写 Servlet:通过实现 Servlet 接口、通过扩展 GenericServlet 抽象类或通过扩展 HttpServlet 抽象类。 Servlet 接口是 GenericServlet 和 HttpServlet 的超级接口。它有五个抽象方法,GenericServlet 和 HttpServlet 继承了这些方法。

通用Servlet、HttpServlet

什么是 GenericServlet

GenericServlet 是 Servlet 接口的直接子类。那是;继承自Servlet接口的一个方法叫做service(),是GenericServlet中的一个抽象方法。从 Servlet 接口继承的其他四个方法在 GenericServlet 中有实现。扩展 GenericServlet 类的程序员应该覆盖 service() 方法并为其编写实现。

此外,GenericServlet 与 SMTP、CGI、FTP、HTTP 等协议一起使用。因此,它是独立于协议的。换句话说,它可以在 Web 未标准化为 HTTP 协议时使用。

什么是HttpServelt

今天大多数 Web 应用程序使用 HTTP 协议。 HttpServlet 旨在支持 HTTP 协议。它也是一个抽象类。此外,HttpServlet 的直接超类是 GenericServlet。 HttpServlet 覆盖了 GenericServlet 中的服务方法。可以用服务方法的相同参数替换服务(使用 doGet() 或 doPost() 的方法)。

由于 HttpServlet 是 GenericServlet 的子类,它继承了 GenericServlet 的属性和方法。因此,当程序员扩展 HttpServlet 时,他可以使用这两个类的功能。

GenericServlet 和 HttpServlet 的区别

定义

GenericServlet 是一个实现了 Servlet、ServletConfig 和 Serializable 接口的类,这些接口提供了这些接口除 service 方法之外的所有方法的实现。 HttpServlet 是一个类,它扩展了 GenericServlet 类并实现了提供 HTTP 特定方法的 Serializable 接口。因此,这表明了 GenericServlet 和 HttpServlet 之间的根本区别。

协议依赖

GenericServlet 和 HttpServlet 之间的主要区别在于 GenericServlet 是独立于协议的,而 HttpServlet 是依赖于协议的。

服务方式

此外,在 GenericServlet 中,服务方法是抽象的。但是,在 HttpServlet 中,服务方法是非抽象的。因此,这是 GenericServlet 和 HttpServlet 之间的另一个重要区别。

签名

关联子类

GenericServlet 是 Servlet 接口的直接子类。另一方面,HttpServlet 是 GenericServlet 的直接子类。

定义包

javax.servlet 包定义了 GenericServlet,而 javax.servlet.http 包定义了 HttpServlet。这是 GenericServlet 和 HttpServlet 之间的另一个区别。

扩展/实施

此外,GenericServlet 扩展了 Object 类并实现了 Servlet、ServletConfig 和 Serializable 接口。 HttpServlet 扩展了 GenericServelt 并实现了一个 Serializable 接口。

可用性

GenericServlet 和 HttpServlet 的另一个区别是 GenericServlet 不常用,而 HttpServlet 常用。

结论

GenericServlet 和 HttpServlet 的主要区别在于,GenericServlet 是协议无关的,可以与任何协议一起使用,例如 HTTP、SMTP、FTP、CGI 等。而 HttpServlet 是协议相关的,只能与 HTTP 协议一起使用。

参考:

1. “Servlet 中的 GenericServlet 类——Javatpoint”。 Www.javatpoint.com,可在此处获得。2。 “Servlet 中的 HttpServlet 类——Javatpoint。” www.javatpoint.com,可在此处获得。

图片提供:

1. Frederik Wahl 的“Servlet” – 通过 Commons Wikimedia 自己的作品(公共领域)

GenericServlet 和 HttpServlet 有什么区别