[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=nulltry{serversocket=new (1) ; //创建侦听端口号为PORT的Serversocket类型的对象System.out.println(“WebServer Started!”);}cateh(10Exceptione){e.printStackTrace();System.exit(1);}while(! shutdown) { //循环等待客户端连接Socket socket=nullInputStream 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请求中的URIpublic String getUri() {return uri;}}/************************************************************/
[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;}
}
/************************************************************/