快速业务通道

基于Jave的Web服务工作机制(6)

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-06

 parseUri 方法从请求行那里得到URI。Listing 1.3 展示了parseUri 方法的用途。 parseUri 减缩请求中的第一个和第二个空格来获得URI。   Listing 1.3. The Request class'' parseUri method   private String parseUri(String requestString) {
  int index1, index2;
  index1 = requestString.indexOf('' '');   if (index1 != -1) {
    index2 = requestString.indexOf('' '', index1 + 1);
    if (index2 > index1)
     return requestString.substring(index1 + 1, index2);
  }   return null;
}   Response类

  Response表示一个HTTP响应。它的构造函数接受一个OutputStream对象,比如下面的:   public Response(OutputStream output) {
  this.output = output;
  }
  Response 对象被HttpServer类的await方法构造,该方法被传递的参数是从socket那里得到的OutputStream对象。   Response类有两个公共方法: setRequest和sendStaticResource. setRequest方法传递一个Request对象给Response对象。Listing 1.4中的代码显示了这个:   Listing 1.4. The Response class'' setRequest method   public void setRequest(Request request) {
  this.request = request;
  }
  sendStaticResource 方法用来发送一个静态资源,比如HTML文件。Listing 1.5给出了它的实现过程:   Listing 1.5. The Response class'' sendStaticResource method   public void sendStaticResource() throws IOException {
  byte[] bytes    = new byte[BUFFER_SIZE];
  FileInputStream fis = null;   try {
    File file = new File(HttpServer.WEB_ROOT, request.getUri());
    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);
      }
    }
    else {
      // file not found
      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());
    }
  }
  catch (Exception e) {
    // thrown if cannot instantiate a File object
    System.out.println(e.toString() );
  }
  finally {
    if (fis != null)
      fis.close();
  }
} 关键词:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号