在 Java 中,“HTTP 超文本(通常是 HTML 文本)的传输”本质上是通过 HTTP 协议在客户端和服务器之间收发包文 来完成的。下面从原理和常见实现方式两方面说明。
超文本一般指 HTML(HyperText Markup Language),在 HTTP 中通常以:
Content-Type: text/html; charset=UTF-8
的形式传输。
以浏览器访问网页为例:
客户端(浏览器 / Java Client)
|
| HTTP Request (GET /index.html)
v
Java HTTP 服务器
|
| HTTP Response
| Content-Type: text/html
| <html>...</html>
v
客户端解析并显示 HTML
HttpServer(简单示例)Java 自带 com.sun.net.httpserver(JDK 自带,适合 demo)
import com.sun.net.httpserver.*;
import java.io.*;
import java.nio.charset.StandardCharsets;
public class HtmlServer {
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new java.net.InetSocketAddress(8080), 0);
server.createContext("/", exchange -> {
String html = "<html><body><h1>Hello HTTP</h1></body></html>";
byte[] bytes = html.getBytes(StandardCharsets.UTF_8);
exchange.getResponseHeaders().add("Content-Type", "text/html; charset=UTF-8");
exchange.sendResponseHeaders(200, bytes.length);
try (OutputStream os = exchange.getResponseBody()) {
os.write(bytes);
}
});
server.start();
}
}
访问:
http://localhost:8080
使用 Tomcat + Servlet
@WebServlet("/page")
public class HtmlServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("<html><body><h1>Hello Servlet</h1></body></html>");
}
}
@RestController
public class HtmlController {
@GetMapping(value = "/html", produces = "text/html")
public String html() {
return "<html><body><h1>Hello Spring</h1></body></html>";
}
}
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://localhost:8080"))
.build();
HttpResponse<String> response =
client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body()); // HTML 文本
✅ 超文本传输 = HTTP + text/html
✅ Java 通过 OutputStream 或 Writer 发送 HTML
✅ 必须设置:
Content-Type: text/html
✅ 字符编码建议:UTF-8
如果你是想问:
可以告诉我具体场景,我可以进一步展开。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。