package com.sctor;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.net.InetSocketAddress;
/**
- @author 小故
- @date 2020/7/18 22:04
*/
// 只有这个Java程序,是能够返回浏览器需要的内容
public class App {
// 快捷键:代码自动补全 alt + /
public static void main(String[] args) throws Exception{
// 注册一个地址 8080
InetSocketAddress address = new InetSocketAddress(8080);
// Java程序:拥有一个端口 – 跟我们浏览器通话
HttpServer httpServer = HttpServer.create(address,0);
// http://127.0.0.1:8080/login --> Java程序要返回HTML页面的内容
httpServer.createContext("/blog", new HttpHandler() {
@Override
public void handle(HttpExchange httpExchange) throws IOException {
// 读取主页面的内容返回给浏览器 – 文件读取
// 文件读取工具类
String html = “”; // 定义一个字符串变量
FileReader fileReader = new FileReader("/Temp/blog.html");
BufferedReader bufferedReader = new BufferedReader(fileReader);
for (;😉 {
String line = bufferedReader.readLine(); // 每次调用此方法 读取一行文字
// 每次调用此方法 读取一行文字
if (line == null){
break; // 结束循环
}
html = html + line;
}
System.out.println(html);
// 返回给浏览器
// 响应内容
byte[] response = html.getBytes(“UTF-8”); // 转换为字节 数组
// 设置响应头
httpExchange.getRequestHeaders().add(“Content-Type”,“text/html;charset=UTF-8”);
// 设置响应code和内容长度
httpExchange.sendResponseHeaders(200,response.length);
// 设置响应内容
httpExchange.getResponseBody().write(response);
// 关闭处理器,同时将关闭请求和响应输入输出流(如果还没关闭)
httpExchange.close();
}
});
// 启动
httpServer.start();
}
}