《 所需前端文件 》
链接:https://pan.baidu.com/s/1iOJWnagvSUSipU8wkCxDlQ
提取码:6666
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V5的分享
视频讲解地址
https://www.bilibili.com/video/BV1uJ411k7wy?p=418
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class TomcatDome {
public static void main(String[] args) throws IOException {
// create network socket object
// 创建一个server socket对象
ServerSocket server_socket = new ServerSocket(2323);
while (true){
// get inputStream object
// 获取socket对象
Socket socket = server_socket.accept();
// 创建多线程,当出现请求时,开辟一条新的线程
new Thread(new Runnable() {
@Override
public void run() {
try {
// get request data
// 获取请求的数据
InputStream inputStream = socket.getInputStream();
byte[] html_data = new byte[1024];
int len = 0;
// 将字节输入流转换为 字符缓冲输入流
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
// get top line data
// 获取第一行数据
String string_line = bufferedReader.readLine();
// split data
// 将数据进行切割
String[] split_after = string_line.split(" ");
// continue split , get path
// 接续切割,获取需要访问的文件路径
String result_path = split_after[1].substring(1);
// show path
// 显示路径信息
System.out.println(result_path);
// return data
// 返回数据
// create fileInputStream object , write path
// 创建文件输入流,将路径信息下的文件信息读取到内存中
FileInputStream fileInputStream = new FileInputStream(result_path);
// get outputStream object
// 创建网络输出流对象
OutputStream os = socket.getOutputStream();
// creat head file
// 编写头文件,使浏览器可以解析一下数据
os.write("HTTP/1.1 200 OK\r\n".getBytes());
os.write("Content-Type:text/html\r\n".getBytes());
os.write("\r\n".getBytes());
// every time read size
// 设置每次返回数据的大小
byte[] return_data = new byte[1024];
len = 0;
// ergodic write browser
// 将数据遍历写入浏览器
while ((len = fileInputStream.read(return_data)) != -1) {
// show get data
// 显示数据
// System.out.println(new String(return_data));
// will data write browser
// 将数据写入浏览器
os.write(return_data);
}
// close stream
// 关闭流
fileInputStream.close();
socket.close();
// server_socket.close();
}catch (IOException e){
// e.printStackTrace();
}
}
}).start();
}
}
}