您需要使用 Servlet API 来创建 servlet。使用 API 时必须记住两个包,包含支持通用 servlet(独立于协议的 servlet)的类的javax.servlet包和包含支持httpServlet的类的javax.servlet.http包。你可能想知道什么是泛型和 http Servlet,我在本文后面已经解释过了。
让我们看看包的层次结构:
java.lang.Object|_extended byjavax.servlet.GenericServlet|_extended byjavax.servlet.http.HttpServlet
每个 Servlet 必须实现java.servlet.Servlet接口,您可以通过扩展以下两个类之一来实现:javax.servlet.GenericServlet或javax.servlet.http.HttpServlet。第一个用于协议无关的 Servlet,第二个用于httpServlet。
servlet 如何工作?

通用 Servlet
如上所述,如果要创建GenericServlet,则必须扩展javax.servlet.GenericServlet类。GenericServlet类有一个抽象的service()方法。这意味着GenericServlet的子类应始终覆盖service()方法。
service()方法的签名:
public abstract void service(ServletRequest request, ServletResponse response)throws ServletException, java.io.IOException
service()方法接受两个参数ServletRequest对象和ServletResponse对象。请求对象告诉 servlet 客户端发出的请求,而响应对象用于将响应返回给客户端。

HTTPServlet
如果您创建HttpServlet,则必须扩展javax.servlet.http.HttpServlet类,这是一个抽象类。与GenericServlet不同,HTTPServlet不会覆盖service()方法。相反,它会覆盖以下一种或多种方法。它必须覆盖以下列表中的至少一个方法:
doGet()- 这个方法由 servlet 服务方法调用,用于处理来自客户端的 HTTPGET请求。Get方法用于从服务器获取信息doPost()- 用于向服务器发布信息doPut()- 这个方法类似于doPost方法,但与我们向服务器发送信息的doPost方法不同,此方法将文件发送到服务器,这类似于从客户端到服务器的 FTP 操作doDelete()- 允许客户端从服务器删除文档,网页或信息init()和 destroy()- 用于管理 servlet 生命周期内持有的资源getServletInfo()- 返回有关 servlet 的信息,例如作者,版本和版权。
在HttpServlet中,不需要覆盖service()方法,因为此方法将 Http 请求分派给正确的方法处理程序,例如,如果它接收到 HTTP GET请求,它会将请求分派给doGet()方法。

javax.servlet包中的接口
ServletServletRequestServletResponseServletConfigServletContextSingleThreadModelRequestDispatcherServletRequestListenerServletRequestAttributeListenerServletContextListenerServletContextAttributeListenerFilterFilterConfigFilterChain
javax.servlet包中的类
GenericServletServletInputStreamServletOutputStreamServletExceptionServletRequestWrapperServletRequestEventServletResponseWrapperServletContextEventServletRequestAttributeEventServletContextAttributeEventUnavailableException
javax.servlet.http包中的接口
HttpSessionHttpServletRequestHttpServletResponseHttpSessionAttributeListenerHttpSessionListenerHttpSessionBindingListenerHttpSessionActivationListenerHttpSessionContext
javax.servlet.http包中的类
HttpServletCookieHttpSessionEventHttpSessionBindingEventHttpServletRequestWrapperHttpServletResponseWrapperHttpUtils
参考:
