你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 跟高手学编程
用Java实现非阻塞的HTTP服务器(十六)
 

//发送响应头

    if (headerBuffer.hasRemaining()) {

        if (cio.write(headerBuffer) <= 0)

            return true;

    }

 

    //发送响应正文

    if (!headersOnly) {

        if (content.send(cio))

            return true;

    }

 

    return false;

  }

 

  /* 释放响应正文占用的资源 */

  public void release() throws IOException {

    content.release();

  }

}

8.代表响应正文的Content接口及其实现类

Response类有一个成员变量content,表示响应正文,它被定义为Content类型:

private Content content;  //响应正文

Content接口表示响应正文,它的定义如下:

public interface Content extends Sendable {

  //正文的类型

  String type();

 

  //返回正文的长度。

//在正文还没有准备之前,即还没有调用prepare()方法之前,length()方法返回-1

  long length();

}

Content接口继承了Sendable接口,Sendable接口表示服务器端可发送给客户的内容,它的定义如下:

public interface Sendable {

  // 准备发送的内容

  public void prepare() throws IOException;

 

  // 利用通道发送部分内容,如果所有内容发送完毕,就返回false

  // 如果还有内容未发送,就返回true

  // 如果内容还没有准备好,就抛出IllegalStateException

  public boolean send(ChannelIO cio) throws IOException;

 

  //当服务器发送内容完毕,就调用此方法,释放内容占用的资源

  public void release() throws IOException;

}

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089