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 类。