# WebServer **Repository Path**: xiaojiehang/WebServer ## Basic Information - **Project Name**: WebServer - **Description**: 一个简单的web服务器,能更好的掌握http协议以及tcp协议 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2020-03-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### Webserver 一个简单的web服务器,能更好的掌握http协议以及tcp协议 包含的知识点:sax解析xml以及http的请求与响应协议,java的TCP编程,java反射机制。 项目包含10个类,一个xml配置文件,一个html页面文件 **Server01** 类主要功能: TCP编程:创建服务器serverSocket 多线程调用分发类Dispatcher,重复接收客户端请求协议并返回 关闭客户端 **Dispatcher** 类主要功能: 该类继承Runnable接口,实现多线程 该类里面创建好两个封装的类Request,Response类进行对接收请求协议,以及包装发送响应协议 再通过Webapp类解析xml协议,再利用反射机制,得到对应的Servlet类,进行响应协议正文的包装。 **Request** 类主要功能: 封装接收请求协议 **Response** 类主要功能: 封装生成响应协议的方法 对外界有个公共方法print,可以传入响应协议内容 内部构建好响应协议头 **Webapp** 类主要功能: 内部静态块通过sax分析xml配置文件,为了进行反射 与webcontext类关联,webcontext处理配置文件内的数据,封装成容器。之前的博客内有相关内容 **webcontext** 类主要功能: 上下文类用于对webapp类解析xml得到的数据进行处理,将其一一转为键值对的形式存储 **Entity** 以及 **Mapping** 类主要功能: 用于将xml内的文件分块,分为两种数据类型: Entity:对应xml文件内的块 **Servlet** 接口以及相关类: 定义一个Servlet接口,每个业务有不同的类构成,这些类都继承Servlet接口。每个类根据请求协议的URL的不同,进行不同的操作实现。 继承Servlet接口的类: **loginServlet** 类:请求协议的URL为login,解析xml,反射得到类loginServlet,调用。 继承Servlet接口的类: **registerServlet** 类:当请求协议的URL为register,反射得到该类,响应回注册的页面