我知道GenericServlet是独立于协议的抽象类。所以我的问题是当有人选择使用GenericServlet时?您是否知道使用GenericServlet的任何具体示例?
我总是将servlet与HTTP协议及其响应和请求相关联。我想不出servlet如何在除HTTP之外的协议中有用。这并不意味着它不可能。在过去可能没有使用在其他协议中使用的选项,并且不再需要它。或者可能是我,我对它没有足够的了解。
答案 0 :(得分:8)
对你的问题的简短回答是“从不。实际上说。”
答案很长,GenericServlet
是一个抽象的(无法实例化的)与协议无关的servlet,它是一个可通过网络(如Web)访问的端点。 GenericServlet
提供了一些基本的生命周期管理,但您必须扩展它以使任何有用的东西。
HttpServlet
是GenericServlet
的一个实现,它处理HTTP协议的许多低级细节,如标头,分块,cookie等。实际上,这是任何人都关心的唯一实现。
我认为理论上可以扩展GenericServlet
以实现不同的协议,如FTP或SMTP,但为什么要这么麻烦?
希望有所帮助。
答案 1 :(得分:1)
GenericServlet不实现所有10个HTTP协议请求(获取post post put delete head trace connect options等)。因此,如果您扩展GenericServlet,那么所有请求都将调用service()方法。 当此HttpServlet的解决方案实现它们时,您可以根据收到的请求执行差异操作。