监听POST请求的Java代码示例

您可以使用Java的Servlet API来监听HTTP POST请求。以下是一个简单的示例,展示了如何创建一个Servlet来处理POST请求:

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/post-handler")
public class PostRequestListenerServlet extends HttpServlet {
    
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 设置响应内容类型
        resp.setContentType("text/plain");
        resp.setCharacterEncoding("UTF-8");
        
        // 读取请求体内容
        try (BufferedReader reader = req.getReader()) {
            String requestBody = reader.lines().collect(Collectors.joining(System.lineSeparator()));
            
            // 处理请求体内容
            System.out.println("Received POST request with body: " + requestBody);
            
            // 向客户端发送响应
            resp.getWriter().write("POST request received with body: " + requestBody);
        }
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.


在这个示例中,@WebServlet注解用于映射Servlet到特定的URL路径(在本例中是/post-handler)。doPost方法是专门用来处理POST请求的,它读取请求体并将其内容打印到控制台,同时也将原始请求体作为响应发送回客户端。

要测试这个Servlet,您可以使用任何HTTP客户端工具(如Postman、curl或浏览器插件)向服务器发送POST请求到/post-handler路径。确保您的Web服务器(如Tomcat、Jetty等)已经配置好,并且您的应用已经被部署到服务器上。

这个示例展示了如何在不使用Spring Boot或其他框架的情况下,使用原生Java Servlet API来监听和处理POST请求。如果您的项目中已经包含了Spring Boot或其他框架,那么您可能会使用框架提供的更高级别的抽象来处理HTTP请求。