Java 版 (精华区)

发信人: DreamWeaver (我是流氓,我谁都怕), 信区: Java
标  题: Java Socket编程(五)
发信站: 哈工大紫丁香 (2002年08月17日10:46:17 星期六), 站内信件


简单的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 + " "; 
        for (int x = 0; x < headerpairs.length; x++ ) 
            s += headerpairs[x] + " "; 
        return s; 
    } 


NameValue类简单地存储了两个字符串:name 和 value. 当一个新的对要被加入时,
一个新的数组将被分配.新的数组接受了旧的数组和新的成员.旧的数组然后被一个
新建的对象覆盖了.

--
       ╭──────────────────╮        ◤◤\\\
       │ 您希望梦想成真吗?找我好了!      │    O  。  □-□--╮
       │    我就是梦的编织者(DreamWeaver)! │ 〇         ∠
       │  Welcome to http://202.118.239.37  │            ╞
       ╰──────────────────╯                                                             你看到我的妮妮了吗? Q_Q 

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.239.4]
※ 修改:·DreamWeaver 於 08月17日10:56:46 修改本文·[FROM: 202.118.239.4]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.230毫秒