具体一点
时间: 2024-02-20 07:02:24 浏览: 16
好的,以下是一个更具体的例子。它会在浏览器中显示一个HTML页面,页面上包含一张图片和一段文本。
```java
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.file.Files;
import java.nio.file.Paths;
public class SimpleHttpServer {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(8080); // 创建服务器套接字并绑定到8080端口
System.out.println("Server started.");
while (true) {
Socket client = server.accept(); // 等待客户端连接
System.out.println("Client connected.");
// 从文件系统中读取HTML页面
String html = readFile("index.html");
// 构造HTTP响应
String response = "HTTP/1.1 200 OK\r\nContent-Length: " + html.getBytes().length + "\r\n\r\n" + html;
OutputStream out = client.getOutputStream();
out.write(response.getBytes()); // 发送响应给客户端
out.flush();
client.close(); // 关闭客户端连接
System.out.println("Client disconnected.");
}
}
// 从文件系统中读取文件内容
private static String readFile(String path) throws IOException {
byte[] bytes = Files.readAllBytes(Paths.get(path));
return new String(bytes);
}
}
```
在这个例子中,我们创建了一个名为`index.html`的HTML文件,并将其放在了与`SimpleHttpServer.java`文件相同的目录下。这个HTML页面包含一张图片和一段文本。在服务器代码中,我们使用`readFile`方法从文件系统中读取HTML页面的内容,并将其作为HTTP响应发送给客户端。当你在浏览器中访问`http://localhost:8080`时,你应该会看到一个包含图片和文本的页面。