Servlet 服务器 HTTP 响应学习笔记

1. 概述

在 Web 应用中,Servlet 可以接收来自客户端的 HTTP 请求,并向客户端发送 HTTP 响应。HTTP 响应由一个状态码、一组响应头和一个响应体组成。本文将详细介绍 Servlet 服务器如何处理 HTTP 响应。

2. HTTP 响应状态码

HTTP 响应状态码是一个三位数字,表示服务器响应请求的结果。常见的 HTTP 状态码有:

  • 200 OK:表示请求被成功处理
  • 404 Not Found:表示请求的资源不存在
  • 500 Internal Server Error:表示服务器内部发生错误

具体的响应状态码及其含义可以参考 HTTP 状态码列表

3. HTTP 响应头

HTTP 响应头包含了一组键值对,用于描述响应的一些附加信息。常见的响应头有:

  • Content-Type:指示响应内容的 MIME 类型
  • Content-Length:指示响应内容的长度
  • Location:用于重定向,表示请求应该发送到另一个 URL

HTTP 响应头可以使用 HttpServletResponse 接口提供的方法进行设置。例如,下面的代码设置响应内容为 JSON 格式:

javaCopy Code
response.setContentType("application/json");

4. HTTP 响应体

HTTP 响应体是服务器向客户端发送的数据,可以是文本、HTML、JSON 等格式。在 Servlet 中,可以使用 HttpServletResponse 接口提供的方法向响应体中写入数据。例如,下面的代码向响应体中写入了一个 HTML 页面:

javaCopy Code
PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head><title>Hello World</title></head>"); out.println("<body>"); out.println("<h1>Hello World</h1>"); out.println("</body>"); out.println("</html>");

5. 示例

下面的示例演示了如何在 Servlet 中处理 HTTP 响应。假设我们有一个名为 HelloServlet 的 Servlet,它可以响应 /hello 请求。当客户端向该 URL 发送 GET 请求时,服务器会向客户端发送一个包含 "Hello, World!" 的响应。

javaCopy Code
@WebServlet("/hello") public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain"); PrintWriter out = response.getWriter(); out.println("Hello, World!"); } }

上述代码中,我们首先在类上标注 @WebServlet 注解,指定了该 Servlet 对应的 URL。然后在 doGet 方法中设置了响应类型为纯文本,并向响应体中写入了 "Hello, World!"。最后,Servlet 容器会将响应发送给客户端。

6. 总结

本文介绍了 Servlet 服务器如何处理 HTTP 响应,包括状态码、响应头和响应体。我们还提供了一个简单的示例,展示了如何编写一个简单的 Servlet 来响应 HTTP 请求。