快速业务通道

基于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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号