[Java 源程序:一个简单的Web服务器] /************************************************************/ /* WebServer.java* / /************************************************************/ package objclass; import java.net. * ; import java.io. * ; public class WebServer { public static final int PORT=8080; //Web 服务器侦听的端口号 public static final String WEB_ROOT= System.getProperty(“user。dir”)+File.separator+“webroot”; //WEB_ROOT 变量存放Web服务器工作目录,该目录存放HTML、GIF图片等静态文件资源 private static final String SHUTDOWN_COMMAND=“/shutdown”; //SHUTDOWN_COMMAND变量保存关闭服务器的命令 private boolean shutdown=falset //是否收到关闭服务器命令的标志 public static void main(String[] args) { WebServer server=new WebServer(); server.await(); } public void await(){ Serversocbet serverSocket=null try{ serversocket=new (1) ; //创建侦听端口号为PORT的Serversocket类型的对象 System.out.println(“WebServer Started!”); }cateh(10Exceptione){ e.printStackTrace(); System.exit(1); } while(! shutdown) { //循环等待客户端连接 Socket socket=null InputStream input=null; OutputStream utput=null; try{ socket= (2) ; //创建来自客户端的连接套接宇 input=SOCket. (3) , //创建输入流 output=SOCket. (4) //创建输出流 Request request=new Request(input); //创建Request对象 request. (5) ; //解析客户端HTTP请求 Responseresponse=new Response(output); //创建Response对象 response.setRequest(request); //将Request对象传递给Response对象 response (6) ; //给客户端发送所请求的静态资源 (7) , //关闭连接套接字 shutdown=request. (8) .equals(SHUTDOWN_COMMAND); //判断当前HTTP请求中的URI是否是关闭服务器命令 } } } } /************************************************************/ / * Request.java */ /************************************************************/ package objclass; import java.io.InputStream; import java.io.IOException; public class Request { private InputStream input; private String uri; public Request(InputStream input) { this.input=input;} public void parse() {... parseUri();...} //解析客户端HTTP请求消息 private String parseUri(String requestString) {... } //解析客户端HTTP请求中的URI public String getUri() {return uri;} } /************************************************************/