有关静态文件服务器的编写

详细代码在这:MikeDog 文件结构 |–HttpServer.java |–Request.java |–Response.java 具体作用 首先是三个类,一个是主要的Server类,然后是Request和Response类,后两个是HTTP协议中的两个用于反馈和接受的类。 Request中主要的方法就是从一个HTTP头中抽取出URI,也就是访问路径。代码如下: 主要是因为HTTP协议中的地址信息,以下是一个HTTP请求协议: 从中可以看到URI在第一行的两个空格之间,当然,上面的写法比较风骚,因为这样的写法很容易带来漏洞,因为如果URI并不是标准的,或者说,有人故意发送一个错误的URI,导致解析错误什么的。 然后看Response中的代码,主要也是写出的,因为从Request中取出目标名称之后就可以从定义的ROOT目录中寻找那个HTML文件,然后要做的就是读出来,写出去。 于是这就成了,其中new File(HttpServer.WEBROOT, request.getUri());,就是读取文件的代码 注意:在HTTP头中,有文件大小的描述,在写出去的时候需要注意修改。如下: 最后就是HttpServer了,他的作用就是建立Socket连接,然后交给Request解析,然后将结果写入Response. 下面的代码就是过程,简单易懂: 最后就是我没有想到的一点,也是学到的一个新的方面: 即通过这个方法来获取网站根目录 最终运行结果(浏览器中)