java中RequestHandler()如何使用?
时间: 2023-12-15 18:03:44 浏览: 33
在Java中,RequestHandler通常用于处理HTTP请求。它是一个接口,需要实现handleRequest()方法,该方法接收一个HTTP请求并返回一个HTTP响应。以下是一个示例:
```java
import java.io.IOException;
import java.io.OutputStream;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
public class MyHandler implements HttpHandler {
public void handle(HttpExchange httpExchange) throws IOException {
String response = "This is the response";
httpExchange.sendResponseHeaders(200, response.length());
OutputStream os = httpExchange.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
```
在这个示例中,我们实现了一个RequestHandler接口,即HttpHandler。我们重写了handle()方法,处理了HTTP请求,并将响应发送回客户端。在该方法中,我们首先设置了响应代码和响应内容长度,然后获取了响应输出流并将响应写入该流中。最后,我们关闭了响应输出流。
要使用此处理程序,我们需要将其注册到HttpServer中。以下是一个示例:
```java
import java.io.IOException;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpServer;
public class MyServer {
public static void main(String[] args) throws IOException {
HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
server.createContext("/test", new MyHandler());
server.setExecutor(null); // creates a default executor
server.start();
}
}
```
在这个示例中,我们创建了一个HttpServer并将其绑定到本地8000端口。然后,我们使用createContext()方法将MyHandler注册到路径“/test”。最后,我们启动了服务器。现在,当客户端发送HTTP请求到“http://localhost:8000/test”,MyHandler将处理该请求并发送响应。