基于Jave的Web服务工作机制(7)
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-06
sendStaticResource 方法是非常简单的。它首先传递父路径和子路径给File类的构造器,从而对Java.io.File类进行了实例化。 File file = new File(HttpServer.WEB_ROOT, request.getUri()); 然后它检查文件是否存在。如果存在,sendStaticResource 方法通过传递File对象来构造一个java.io.FileInputStream对象。然后调用FileInputStream 的read方法,将字节流写如到OutputStream输出。注意这种情况下, 静态资源的内容也被作为原始数据被发送给了浏览器。 if (file.exists()) { fis = new FileInputStream(file); int ch = fis.read(bytes, 0, BUFFER_SIZE); while (ch != -1) { output.write(bytes, 0, ch); ch = fis.read(bytes, 0, BUFFER_SIZE); } } 如果这个文件不存在,sendStaticResource 方法发送一个错误消息给浏览器。 String errorMessage = "HTTP/1.1 404 File Not Found\r\n" + "Content-Type: text/HTML\r\n" + "Content-Length: 23\r\n" + "\r\n" + "File Not Found"; output.write(errorMessage.getBytes()); 编译和运行应用程序 为了编译和运行应用,你首先需要解压包含本文应用程序的.zip文件。你解压的目录成为工作目录(working Directory),它有三个子目录: src/, classes/, 和 lib/。 要编译应用程序需要在工作目录输入如下语句: javac -d . src/ex01/pyrmont/*.java 这个-d 选项参数将结果写到当前目录,而不是src/ 目录。 要运行应用程序,在工作目录中输入如下语句: java ex01.pyrmont.HttpServer 要测试你的应用程序,打开浏览器,在地址栏中输入如下URL: http://localhost:8080/index.html 你将可以看到浏览器中显示的index.html 页面。 Figure 1. The output from the web server 在控制台(Console),你能看到如下内容: GET /index.html HTTP/1.1 Accept: */* Accept-Language: en-us Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98) Host: localhost:8080 Connection: Keep-Alive GET /images/LOGO.gif HTTP/1.1 Accept: */* Referer: http://localhost:8080/index.html Accept-Language: en-us Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98) Host: localhost:8080 Connection: Keep-Alive 概要总结 在本文中,你了解了一个简单的Web服务器的工作机制。本文附带的应用程序源代码只包含三个类,但并不是所有的都有用。尽管如此,它还是能被作为一种很好的学习工具为我们服务。 关键词: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Apache服务器的安装教程(3)下一篇: 基于Jave的Web服务工作机制(2)
关于基于Jave的Web服务工作机制(7)的所有评论