欢迎光临极品网,更多、更新的资源信息尽在Jpinw.Com!本站所有信息资源每日更新新的内容,请大家继续关注www.Jpinw.com!如果觉得本站还不错,对您有帮助,别忘了向您的朋友推荐本站!请记好本站网址:http://www.Jpinw.com,网站发展靠大家多多的支持!!!

极品网 极品课件 极品论文 极品文学 极品游戏 极品美容 极品手机资源 极品股票

#
免费资源: 免费域名 | 免费空间 | 免费推广 | 免费邮箱 | 免费硬盘 | 免费论坛 | 免费留言 | 免费统计 | 在线投稿 | 更多...
电脑学院: 操作系统 | 安全相关 | 网页设计 | 编程开发 | 建站经验 | 服务器类 | 黑客攻防 | 菜鸟入门 | 教你网赚 | 更多...
文章导航: 网赚学堂 | 网赚秘笈 | 网赚三维 | 网赚先锋 | 网赚资讯 | 感悟网赚 | 众生百态 | 经典美文 | 范文中心 | 更多...
图酷天下: 时事图酷 | 娱乐图酷 | 搞笑图酷 | 时尚图酷 | 体育图酷 | 另类经典 | 论文资源 | 课件下载 | 文学知识 | 更多...

您现在的位置: 极品网 >> 电脑学院 >> 服务器类 >> WIN服务器 >> 教程正文

基于Jave的Web服务工作机制(5)          【字体:
基于Jave的Web服务工作机制(5)
作者:佚名    教程来源:不详    点击数:    更新时间:2006-6-2    

 








input = socket.getInputStream();
  output = socket.getOutputStream();
await于是就创建一个Request对象并调用它的 parse 方法来解析原始的HTTP请求信息。

  // create Request object and parse
  Request request = new Request(input);
  request.parse();

  接下来,await 方法创建了一个Response 对象,使用setRequest方法并调用它的sendStaticResource 方法。

  // create Response object
  Response response = new Response(output);
  response.setRequest(request);
  response.sendStaticResource();

  最后,await关闭该Socket。调用Request的getUri方法来检查HTTP请求的URI是否是一个shutdown命令。如果是,shutdown变量被设置为true,程序退出while循环。

  // Close the socket
  socket.close();
  //check if the previous URI is a shutdown command
  shutdown = request.getUri().equals(SHUTDOWN_COMMAND);

  Request类

  Request类代表一个HTTP请求。Socket处理客户端的通讯,将返回一个InputStream对象,通过传递该对象,可以构造一个Request类的实例。通过调用InputStream 对象的read方法来获得这个HTTP请求的原始数据(raw data)。

  Request 有两个公共方法:parse 和 getUri。parse方法解释HTTP请求的原始数据。它不做很多事情----它能够利用的唯一信息只是HTTP请求的URI ,这个URI是从私有方法 parseUri.得到的。parseUri 方法保存URI 到uri 变量中,然后调用公共方法getUri来返回一个HTTP请求的URI。

  为了理解parse 和 parseUri 方法是如何工作的,需要知道HTTP请求的内部结构。这个结构是在RFC2616文档中定义的。

  一个HTTP请求包含三个部分:

  请求行(Request line)
  请求包头(Headers)
  消息体(Message body)

  现在,我们仅仅只对HTTP请求的第一部分请求行(Request line)感兴趣。一个请求行由方法标记开始,后面根请求的URI和协议版本,最后由CRLF字符结束。请求行中的元素被空格字符分开。比如,使用GET方法请求的index.html文件的请求行如下:

  GET /index.html HTTP/1.1 //这是一个请求行
  方法parse从socket的InputStream 中读取整个字节流,该字节流是 Request 对象传递进来的,然后parse将这些字节流存储在一个缓冲区里, 在缓冲区中组装一个称为request的StringBuffer对象。

  下面的Listing 1.2.显示了parse方法的用法:

  Listing 1.2. The Request class' parse method

  public void parse() {
  // Read a set of characters from the socket
  StringBuffer request = new StringBuffer(2048);
  int i;
  byte[] buffer = new byte[2048];

  try {
    i = input.read(buffer);
  }
  catch (IOException e) {
    e.printStackTrace();
    i = -1;
  }

  for (int j=0; j<i; j++) {
    request.append((char) buffer[j]);
  }

  System.out.print(request.toString());
  uri = parseUri(request.toString());
  }


 

教程录入:dping    责任编辑:dping 
  • 上一篇教程:

  • 下一篇教程:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关教程
    IE教程《评论:微软IE 7是为
    IE教程《评论:微软IE 7是为
    IE教程《评论:微软IE 7是为
    IE教程《评论:微软IE 7是为
    IE教程《评论:微软IE 7是为
    IE教程《评论:微软IE 7是为
    IE教程《评论:微软IE 7是为
    IE教程《评论:微软IE 7是为
    IE教程《评论:微软IE 7是为
    Trojan-PSW.Win32.OnLineGam
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    极品网
    | 设为首页 | 加入收藏 | 友情链接 | 版权声明 |
    极品网

    Copyright 2006 Jpinw.com 极品网

    备案号:申请中

    极品网