之前有小伙伴向我请教一道笔试题:要求写出一个WEB应用服务,不得使用Servlet接口,用Socket实现,可以响应get请求,打印请求信息,并判断请求资源,若不存在,返回404信息,若资源存在,返回该资源,并且可以返回默认的静态页面。
我简单写了一个小Demo,实现了上述功能,在这里分享给大家。
思路
主线程启动Socket服务,循环接收客户端请求,接收到请求后,将流中的数据取出拼接成字符串,在控制台打印。响应时判断请求资源是否存在,若存在,将资源通过输出流响应给客户端,若资源不存在,将404错误信息通过输出流响应给客户端,同时指定一个静态页面作为默认返回。
创建4个类
MyHttpServer:定义Socket服务,循环接收请求。
MyHttpRequest:自定义请求对象,解析请求。
MyHttpResponse:自定义响应对象,根据请求做出响应。
Test:测试类,主线程中启动Socket服务。
代码
源码:
github
https://github.com/southwind9801/MyWebServer.git
领取专属 10元无门槛券
私享最新 技术干货