HttpServletResponse
和 HttpServletRequest
是 Java Servlet API 中的两个核心接口,它们分别代表了 HTTP 响应和 HTTP 请求。在基于 Java 的 Web 应用中,特别是使用 Servlet 技术时,这两个接口被广泛应用。
HttpServletRequest
HttpServletRequest
对象代表了客户端发送给服务器的 HTTP 请求。当客户端(例如浏览器)向服务器发送请求时,服务器会创建一个 HttpServletRequest
对象来封装这个请求。这个对象包含了请求的所有信息,比如请求的 URL、请求头、请求参数等。
通过 HttpServletRequest
对象,我们可以获取客户端提交的数据,例如表单数据、查询参数等。这个对象还提供了很多方法来获取请求的各种属性,比如获取请求的方法(GET、POST 等)、获取请求的协议类型、获取请求的远程地址等。
HttpServletResponse
HttpServletResponse
对象代表了服务器对客户端的 HTTP 响应。当服务器处理完客户端的请求后,需要发送一个响应回客户端,这时就会创建一个 HttpServletResponse
对象来封装这个响应。
通过 HttpServletResponse
对象,我们可以设置响应的状态码、响应头、响应体等。例如,我们可以设置响应的状态码为 200 表示成功,或者设置为 404 表示未找到资源。我们还可以设置响应头来控制缓存、重定向等行为。最重要的是,我们可以通过 HttpServletResponse
对象向客户端输出数据,比如输出 HTML 页面、JSON 数据等。
使用示例
在 Servlet 中,通常会在 doGet
或 doPost
方法中处理请求和生成响应。这两个方法都会接收一个 HttpServletRequest
对象和一个 HttpServletResponse
对象作为参数。例如:
@WebServlet("/example")
public class ExampleServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取请求参数
String param = request.getParameter("name");
// 设置响应内容类型
response.setContentType("text/html");
// 获取响应输出流
PrintWriter out = response.getWriter();
// 输出响应内容
out.println("<html><body>");
out.println("<h1>Hello, " + param + "!</h1>");
out.println("</body></html>");
}
}
在这个示例中,我们首先从 HttpServletRequest
对象中获取了一个请求参数 name
,然后设置了响应的内容类型为 HTML,最后通过 HttpServletResponse
对象的 getWriter
方法获取了一个输出流,并输出了一个简单的 HTML 页面作为响应。