如何在Java服务端接收JS发送过来的请求

在前端开发中,我们经常需要与后端交互,其中就包括前端通过JavaScript发送请求给后端的Java服务端。这篇文章将介绍如何在Java服务端接收来自前端JS的请求,并给出一个实际的示例。

实际问题

假设我们有一个前端页面,其中有一个按钮,当用户点击该按钮时,会发送一个POST请求给Java服务端,并传递一个参数。我们需要在Java服务端接收这个请求,并打印出接收到的参数。

示例代码

以下是一个简单的示例代码来实现上述功能:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.stream.Collectors;

import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;

public class MyHandler implements HttpHandler {
    @Override
    public void handle(HttpExchange exchange) throws IOException {
        if ("POST".equals(exchange.getRequestMethod())) {
            BufferedReader reader = new BufferedReader(new InputStreamReader(exchange.getRequestBody()));
            String requestBody = reader.lines().collect(Collectors.joining("\n"));
            System.out.println("Received POST request with body: " + requestBody);
            exchange.sendResponseHeaders(200, 0);
        } else {
            exchange.sendResponseHeaders(405, 0);
        }
        exchange.close();
    }
}

在上面的示例中,我们创建了一个HttpHandler的实现类MyHandler来处理接收到的请求。我们首先判断请求的方法是否为POST,然后读取请求体中的参数,并打印出来。最后根据请求的方法发送不同的响应码并关闭连接。

关系图

erDiagram
    HTTPRequest --|> HttpHandler
    HttpHandler --|> MyHandler

结尾

通过上述示例代码,我们可以实现在Java服务端接收来自前端JS发送的请求并处理其中的参数。这样我们就可以实现前后端的数据交互,为Web应用的开发提供了基础支持。希望本文对您有所帮助。