day30(V6:显示第一个页面、V7:404网页)
1.v6
1.主要内容
-
此版本完成响应客户端的工作 这里先将ClientHandler中处理一次交互的第三步:响应客户端 实现出来。 目标:将一个固定的html页面通过发送一个标准的HTTP响应回复给浏览器使其呈现出来。
-
需要的知识点: 1:HTML基础语法,html是超文本标记语言,用于构成一个"网页"的语言。
-
实现:
-
一:先创建第一个页面index.html
-
1:在src/main/resource下新建目录static 这个目录用于存放当前服务端下所有的网络应用中的静态资源。注:每个网路应用相当于一个"网站"的所有内容。而每个网络应用以一个独立的目录保存在static下,该目录的名字就是这个网络应用的名字。
-
2:在static目录下新建目录:myweb,作为我们的第一个"网站"
-
3:在myweb目录下新建第一个页面:index.html
-
-
二:实现将index.html页面响应给浏览器 在ClientHandler第三步发送响应处,按照HTTP协议规定的响应格式,将该页面包含在正文部分将其 发送给浏览器即可。
-
2.ClientHandler
package com.webserver.core;
import com.webserver.http.HttpServletRequest;
import java.io.*;
import java.net.Socket;
import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 该线程任务负责与指定客户端完成HTTP交互
* 与客户端交流的流程分成三步:
* 1:解析请求
* 2:处理请求
* 3:发送响应
*/
public class ClientHandler implements Runnable {
private Socket socket;
public ClientHandler(Socket socket) {
this.socket = socket;
}