【发布时间】:2013-10-08 17:45:27
【问题描述】:
我知道 GenericServlet 是独立于协议的,是一个抽象类。所以我的问题是什么时候有人会选择使用 GenericServlet?您是否知道使用 GenericServlet 的任何特定示例?
我一直将 servlet 与 HTTP 协议及其响应和请求相关联。我想不出 servlet 在 HTTP 以外的协议中如何有用。这并不意味着它不可能。过去可能没有使用在其他协议中使用的选项,并且不再需要它。也可能是我对它的了解不够。
【问题讨论】:
-
来自 javadoc:
GenericServlet makes writing servlets easier. It provides simple versions of the lifecycle methods init and destroy and of the methods in the ServletConfig interface. GenericServlet also implements the log method, declared in the ServletContext interface. -
@SotiriosDelimanolis 谢谢。我了解实现了生命周期方法的更简单版本。但是,您不必在代码中处理 httprequest 和 httpresponse 吗?还是 GenericServlet 会解决这个问题?
-
首先,您不能拥有
GenericServlet对象。类是抽象的。其次,Servlet的入口点是它的service()方法。您需要创建一个实现该方法的实现类。HttpServlet的doXXX方法是从HttpServlet的service方法调用的。 -
@SotiriosDelimanolis 这是我不理解的地方,当它说使编写 servlet 更容易时。您必须编写自己的 service() 方法。如果您使用 HttpServlet,则您拥有 doXXX 范例。这如何使它更容易?
-
如果您的课程从
GenericServlet扩展,您不必编写一些样板代码。正如您所说,doXXX范式仅与 HTTP 相关,因此仅与HttpServlet及其子类相关。如果你想为流媒体音乐(或其他)创建一个Servlet,你不会使用 GET、POST 等。GenericServlet真的像任何通用的abstract类一样,添加一些你可能想要重用的非常基本的信息.