📜  Java中的HttpServlet类

📅  最后修改于: 2022-05-13 01:54:26.960000             🧑  作者: Mango

Java中的HttpServlet类

HttpServelt 是一个抽象类,它位于包' javax.servlet.http.HttpServlet '下。要创建 servlet,该类必须扩展 HttpServlet 类并覆盖其至少一种方法(doGet、doPost、doDelete、doPut)。 HttpServlet 类扩展了 GenericServlet 类并实现了 Serializable 接口。

HttpServlet 类的构造函数

HttpServlet()

这是一个抽象类,所以构造函数什么都不做。

HttpServlet 类的方法

1. doGet() 方法

  • 该方法用于处理服务器端的 GET 请求。
  • 此方法还自动支持 HTTP HEAD(HEAD 请求是一个 GET 请求,它在响应中返回任何人)请求。
  • GET 类型的请求通常用于对请求进行预处理

修饰符和类型: protected void

句法:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException

参数:

  • request –一个 HttpServletRequest 对象,其中包含客户端对 servlet 发出的请求。
  • response –一个 HttpServletResponse 对象,其中包含 servlet 发送给客户端的响应。

例外:

  • IOException –如果在 servlet 处理 GET 请求时检测到输入或输出错误。
  • ServletException –用于处理 GET 请求。

2.doPost() 方法

  • 该方法用于处理服务器端的 POST 请求。
  • 此方法允许客户端一次向 Web 服务器发送无限长度的数据。
  • POST 类型的请求通常用于对请求进行后处理。

修饰符和类型: protected void

句法:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException

范围:

  • request –一个 HttpServletRequest 对象,其中包含客户端对 servlet 发出的请求。
  • response –一个 HttpServletResponse 对象,其中包含 servlet 发送给客户端的响应。

抛出:

  • IOException –如果在 servlet 处理 POST 请求时检测到输入或输出错误。
  • ServletException –用于处理 POST 请求。

3.doHead()方法

  • 此方法被重写以处理 HEAD 请求。
  • 在此方法中,响应包含唯一的标头,但不包含消息正文。
  • 此方法用于提高性能(避免计算响应体)。

修饰符和类型: protected void

句法:

protected void doHead(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException

参数:

  • request –一个 HttpServletRequest 对象,其中包含客户端对 servlet 发出的请求。
  • response –一个 HttpServletResponse 对象,其中包含 servlet 发送给客户端的响应。

例外:

  • IOException –如果在 servlet 处理 HEAD 请求时检测到输入或输出错误。
  • ServletException –用于处理 HEAD 请求。

4. doPut() 方法

  • 此方法被重写以处理 PUT 请求。
  • 此方法允许客户端将信息存储在服务器上(将图像文件保存在服务器上)。
  • 服务器调用此方法(通过 service 方法)来处理 PUT 请求。

修饰符和类型: protected void

句法:

protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException

参数:

  • request –一个 HttpServletRequest 对象,其中包含客户端对 servlet 发出的请求。
  • response –一个 HttpServletResponse 对象,其中包含 servlet 发送给客户端的响应。

抛出:

  • IOException –如果在 servlet 处理 PUT 请求时检测到输入或输出错误。
  • ServletException –用于处理 PUT 请求。

5. doDelete() 方法

  • 重写此方法以处理 DELETE 请求。
  • 此方法允许客户端从服务器中删除文档或网页。
  • 使用此方法时,将受影响的 URL 的副本保存在临时存储中以避免数据丢失可能很有用。

修饰符和类型: protected void

句法:

protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException

参数:

  • request –一个 HttpServletRequest 对象,其中包含客户端对 servlet 发出的请求。
  • response –一个 HttpServletResponse 对象,其中包含 servlet 发送给客户端的响应。

例外:

  • IOException –如果在 servlet 处理 DELETErequest 时检测到输入或输出错误。
  • ServletException –用于处理 DELETE 请求。

6. doOptions() 方法

  • 此方法被重写以处理 OPTIONS 请求。
  • 此方法用于确定服务器支持哪些 HTTP 方法并返回适当的标头。

修饰符和类型: protected void

句法:

protected void doOptions(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException

参数:

  • request –一个 HttpServletRequest 对象,其中包含客户端对 servlet 发出的请求。
  • response –一个 HttpServletResponse 对象,其中包含 servlet 发送给客户端的响应。

例外:

  • IOException –如果在 servlet 处理 OPTIONS 请求时检测到输入或输出错误。
  • ServletException –用于处理 OPTIONS 请求。

7. doTrace() 方法

  • 此方法被重写以处理 TRACE 请求。
  • 此方法将随 TRACE 请求一起发送的标头返回给客户端,以便在调试中使用它们。

修饰符和类型: protected void

句法:

protected void doTrace(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException

参数:

  • request –一个 HttpServletRequest 对象,其中包含客户端对 servlet 发出的请求。
  • response –一个 HttpServletResponse 对象,其中包含 servlet 发送给客户端的响应。

例外:

  • IOException –如果在 servlet 处理 TRACE 请求时检测到输入或输出错误。
  • ServletException –用于处理 TRACE 请求。

8. getLastModified() 方法

  • 此方法返回上次修改 HttpServletRequest 对象的时间。
  • 如果时间未知,该方法将返回一个负数。
  • 此方法使浏览器和代理缓存更有效地工作。
  • 还减少了服务器和网络资源的负载。

修饰符和类型:受保护的长

句法:

protected long getLastModified(HttpServletRequest request)

参数: request –一个 HttpServletRequest 对象,其中包含客户端对 servlet 发出的请求。

9. service() 方法

此方法接收来自公共服务方法的标准 HTTP 请求,并将它们分派到此类中定义的doXXX方法。

修饰符和类型: protected void

句法:

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException

参数:

  • request –一个 HttpServletRequest 对象,其中包含客户端对 servlet 发出的请求。
  • response –一个 HttpServletResponse 对象,其中包含 servlet 发送给客户端的响应。

例外:

  • IOException –如果在 servlet 处理 HTTP 请求时检测到输入或输出错误。
  • ServletException –用于处理 HTTP 请求。

10. service() 方法

此方法用于将客户端请求分派到受保护的服务方法。

修饰符和类型: public void

句法:

public void service(ServletRequest reqequest,ServletResponse response) throws ServletException,IOException

参数:

  • request –一个 HttpServletRequest 对象,其中包含客户端对 servlet 发出的请求。
  • response –一个 HttpServletResponse 对象,其中包含 servlet 发送给客户端的响应。

例外:

  • IOException –如果在 servlet 处理 HTTP 请求时检测到输入或输出错误。
  • ServletException –用于处理 HTTP 请求。

例子:

Java
package com.gfg;
import javax.servlet.*;
import javax.servlet.http.*;
  
// here GFGServlet class inherit HttpServlet
public class GFGServlet extends HttpServlet {
    
    // we are defining the doGet method of HttpServlet
    // abstract class
    public void doGet(HttpServletRequest rq,
                      HttpServletResponse rs)
    {
        // here user write code to handle doGet request
    }
  
    // we are defining the doPost method of HttpServlet
    // abstract class
    public void doPost(HttpServletRequest rq,
                       HttpServletResponse rs)
    {
        // here user write code to handle doPost request
    }
  
} // class ends


注意:这是服务端代码,只是为了说明如何使用 HttpServlet 类。