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

怡雪斋

怡雪斋

2016-02-19 14:02

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。
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类

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

  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];

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

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

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

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

展开更多 50%)
分享

猜你喜欢

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

Web开发
基于Jave的Web服务工作机制(5)

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

Web开发
基于Jave的Web服务工作机制(7)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

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

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

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

Web开发
基于Jave的Web服务工作机制(4)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

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

Web开发
基于Jave的Web服务工作机制(3)

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

Web开发
基于Jave的Web服务工作机制(1)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

将PowerPoint2003图片置于底层不覆盖文字

将PowerPoint2003图片置于底层不覆盖文字

Word 2007技巧:为图片重新着色

Word 2007技巧:为图片重新着色
下拉加载更多内容 ↓