请使用java写一个http服务器
时间: 2023-03-13 16:08:23 浏览: 57
可以参考以下代码:import java.io.*;
import java.net.*;public class HttpServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(8080);
System.out.println("服务器启动,等待客户端连接..."); while (true) {
Socket socket = serverSocket.accept();
// 获取客户端的输入流
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 读取请求信息
String requestHeader;
int contentLength = 0;
while ((requestHeader = br.readLine()) != null && !requestHeader.isEmpty()) {
System.out.println(requestHeader);
// 读取POST请求的数据内容长度
if (requestHeader.startsWith("Content-Length")) {
contentLength = Integer.parseInt(requestHeader.split(":")[1].trim());
}
}
// 读取POST请求的数据内容
StringBuffer content = new StringBuffer();
if (contentLength > 0) {
for (int i = 0; i < contentLength; i++) {
content.append((char) br.read());
}
System.out.println(content.toString());
}
// 响应客户端
OutputStream out = socket.getOutputStream();
out.write("HTTP/1.1 200 OK\r\n".getBytes());
out.write("Content-Type:text/html;charset=utf-8\r\n".getBytes());
out.write("\r\n".getBytes());
out.write("<html><head><title>HttpServer</title></head><body>".getBytes());
out.write("<h1>您好,我是HttpServer!</h1>".getBytes());
out.write("</body></html>".getBytes());
out.flush();
socket.close();
} }}