版本1
但是只能实现一次访问,不可以接受刷新
package front_end.day01_html.myServer;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class MyBrowseServer {
public static void main(String[] args) throws IOException {
System.out.println("服务器正在连接.....");
method();
}
public static void method() throws IOException {
// 创建服务器端
ServerSocket serverSocket = new ServerSocket(8000);
// 创建连接
Socket accept = serverSocket.accept();
//创建网页字节流端输入
InputStream is = accept.getInputStream();
// 将字节流转换为
InputStreamReader reader = new InputStreamReader(is);
BufferedReader br = new BufferedReader(reader);
// 客户端请求端第一行取出来 GET /index.html HTTP/1.1
String request = br.readLine();
// 取出请求资源的路径:index.html
// 把读取的信息进行切割,只要中间的部分:index.html
String[] str = request.split(" ");
//把/截掉
String path = str[1].substring(1);
// 根据得到的路径:web/index.html
// 创建本地字节输入流对象,构造方法中绑定要读取的html路径:/index.html
FileInputStream input = new FileInputStream(path);
// 获取网络字节输出流,将文件写回客户端:Browser——浏览器端
OutputStream out = accept.getOutputStream();
// 写入HTTP协议响应头,固定写法
out.write("HTTP/1.1 200 OK\r\n".getBytes());
out.write("Content‐Type:text/html\r\n".getBytes());
// 必须要写入空行,否则浏览器不解析
out.write("\r\n".getBytes());
byte[] bytes = new byte[1024];
int len;
while ((len = input.read(bytes)) != -1){
out.write(bytes, 0, len);
}
out.close();
is.close();
br.close();
accept.close();
serverSocket.close();
}
}