6

我知道 GenericServlet 是独立于协议的,是一个抽象类。所以我的问题是什么时候有人会选择使用 GenericServlet?您是否知道使用 GenericServlet 的任何特定示例?

我一直将 servlet 与 HTTP 协议及其响应和请求相关联。我想不出 servlet 在 HTTP 以外的协议中如何有用。这并不意味着它不可能。过去可能没有使用在其他协议中使用的选项,并且不再需要它。或者可能是我对它的了解不够。

4

2 回答 2

9

您的问题的简短回答是“从不。实际上说。”

长答案是这GenericServlet是一个抽象的(不能被实例化的)协议独立的 servlet,它是一个可以通过网络(如 web)访问的端点。GenericServlet提供了一些基本的生命周期管理,但您必须扩展它以使任何有用的东西。

HttpServlet是一种GenericServlet处理 HTTP 协议的许多低级细节的实现,如标头、分块、cookie 等。实际上,这是任何人关心的唯一实现。

我想理论上可以扩展GenericServlet以实现不同的协议,如 FTP 或 SMTP,但为什么要麻烦呢?

希望有帮助。

于 2013-10-08T18:11:16.397 回答
1

GenericServlet 没有实现所有 10 个 HTTP 协议请求(获取 post put delete head trace 连接选项等)。所以如果你扩展 GenericServlet 那么所有的请求都会调用 service() 方法。由于此 HttpServlet 的解决方案实现了它们,因此您可以根据收到的请求执行不同的操作。

于 2016-12-19T06:04:26.943 回答