为什么 GenericServlet 声明服务方法?

Bra*_*avo 5 java abstract-class servlets jakarta-ee

我正在检查 Servlet API,我注意到 GenericServlet 是一个实现 javax.servlet.Servet 接口的抽象类。我想知道为什么 GenericServlet 类的作者声明了一个抽象方法“service(ServletRequest req, ServletResponse res)”,如果这个方法已经在接口 javax.servlet.Servlet 中声明了。任何的想法?

小智 1

Generic Servlet 是抽象类,并且实现了 javax.servlet.Servlet 和 javax.servlet.ServletConfig 接口。该类实现了 Servlet 接口,它提供了 Servlet 和 ServletConfig 接口中所有可用方法的默认实现。service() 方法在 GenericServlet 中仍然是抽象的,这意味着任何扩展 GenericServlet 的 servlet 都必须提供 service() 方法的实现。因为这个方法是 servlet 的完整逻辑所在的主要方法,并且通用 servlet 如何知道要执行哪个逻辑。如果此方法不是抽象的,那么开发人员可能会不实现此方法。