程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Java Socket編程(五)簡單的WEB服務器

Java Socket編程(五)簡單的WEB服務器

編輯:JAVA編程入門知識

       簡單的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.當一個新的對要被加入時,一個新的數組將被分配.新的數組接受了舊的數組和新的成員.舊的數組然後被一個新建的對象覆蓋了.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved