| 
文章来源:aspcn 作者:孙雯</p> 简单的WEB效劳器 
 
            一个简单的WEB效劳器将由列表9.2这样构建.当然,还必需要对方法和回应事件停止改进.简单的效劳器不会分析和存储恳求头.新的WEB效劳器将分析和存储恳求,为以后的处置作准备.为了到达这个目的,你必需有一个包含HTTP恳求的类. 
 
HTTPrequest类 
 
列表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 + "\n";  
for (int x = 0; x < headerpairs.length; x++ )  
s += headerpairs[x] + "\n";  
return s;  
}  
}  
 
NameValue类简单地存储了两个字符串:name 和 value.当一个新的对要被参与时,一个新的数组将被分配.新的数组接受了旧的数组和新的成员.旧的数组然后被一个新建的对象覆盖了.  |