Servlet API

来源:这里教程网 时间:2026-02-17 21:37:17 作者:

您需要使用 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 服务方法调用,用于处理来自客户端的 HTTP GET请求。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

参考:

    官方 Servlet API 文档:javax.servletAPI 文档:java.servlet.http

相关推荐