最开始的servlet接口
public interface Servlet {
public void init (ServletConfig config) throws ServletException;
public void service (ServletRequest req, ServletResponse res) throws ServletException, IOException;
public void destroy ();
public String getServletInfo ();
public ServletConfig getServletConfig ();
}
有这五种方法,但是有个问题是我们在用servlet接口的时候,要重写这五个方法,但实际上我们最常用的还是init(),service(),destroy()这三个方法,于是我们发展出了GenericServlet抽象类,用于用于包装Servlet接口,其中提供了很多Servlet接口的默认实现,这样我们实现Servlet的时候,就不必实现Servlet接口的所有方法,只重写核心方法即可。
GenericServlet抽象类,定义了一个通用的,不依赖于具体协议的servlet,给出了除了service()方法外的其余四个方法的实现。所以当我们写了一个类继承GenericServlet的话,只需要重写service方法,但由于GenericServlet不带有具体协议,只要浏览器有发送请求,GenericServlet不会区分出是什么请求,就会直接调用你重写的service方法,于是servlet又“升级”了一次,也就是HttpServlet
Servlet的继承结构分析
最新推荐文章于 2024-08-01 21:48:30 发布
Servlet接口最初包含五个方法,通常只关注init、service和destroy。为简化实现,引入了GenericServlet抽象类,提供默认实现并只需重写service。然而,由于协议需求,HttpServlet进一步扩展,通过doGet、doPost等处理特定HTTP方法的请求。现代Servlet开发中,继承HttpServlet并覆写doGet和doPost等方法。
摘要由CSDN通过智能技术生成