龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Java Socket编程(五) 简单的WEB服务器[组图]

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
简单的WEB服务器 一个简单的WEB服务器将由列表9.2这样构建.当然,还必须要对方法和回应事件进行改进.简单的服务器不会分析和存储请求头.新的WEB服务器将分析和存储请求,为以后的处理
简单的WEB服务器
  
   一个简单的WEB服务器将由列表9.2这样构建.当然,还必须要对方法和回应事件进行改进.简单的服务器不会分析和存储请求头.新的WEB服务器将分析和存储请求,为以后的处理作预备.为了达到这个目的,你必须有一个包含HTTP请求的类.
  
   HTTPrequest类
  
   <!-- frame contents -->
<!-- /frame contents --> 列表9.5列出了一个完整的HTTPrequest类.这个类必须包括一个请求头所需的所有信息.
  
   列表9.5.HTTPrequest类.
  
   import Java.io.*;
   import java.util.*;
   import java.net.*;
   import NameValue;
   /**
   * 这个类有一个HTTP请求的所有信息
   */
   public class HTTPrequest
   {
   public String version;
   public String method;
   public String file;
   public Socket clientSocket;
   public DataInputStream inbound;
   public NameValue headerpairs[];
   /**
   * 建立一个这个类的实例
   */
   public HTTPrequest()
   {
   version = null;
   method = null;
   file = null;
   clientSocket = null;
   inbound = null;
   inbound = null;
   headerpairs = new NameValue[0];
   }
   /**
   * 加入一个名称/值对到核心数组
   */
   public void addNameValue(String name, String value)
   {
   try
   {
   NameValue temp[] = new NameValue[ headerpairs.length + 1 ];
   System.arraycopy(headerpairs, 0, temp, 0, headerpairs.length);
   temp[ headerpairs.length ] = new NameValue(name, value);
   headerpairs = temp;
   }
   catch (NullPointerException npe)
   {
   System.out.println("NullPointerException while adding name-value:
   " + npe);
   }
   }
   /**
   * 以字符串的形式归还这个类
   */
   public String toString()
   {
   String s = method + " " + file + " " + version + " ";
   for (int x = 0; x < headerpairs.length; x++ )
   s += headerpairs[x] + " ";
   return s;
   }
   }
  
   NameValue类简单地存储了两个字符串:name 和 value.当一个新的对要被加入时,一个新的数组将被分配.新的数组接受了旧的数组和新的成员.旧的数组然后被一个新建的对象覆盖了.
  
  
精彩图集

赞助商链接