快速业务通道

[JAVA100例]050、一个简单的Web服务器 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

[JAVA100例]050、一个简单的Web服务器

时间:2011-01-09

import java.io.*; import java.net.*; /** * <p>Title: 发现HTTP内容和文件内容</p> * <p>Description: 获得用户请求后将用户需要的文件读出,添加上HTTP应答头。发送给客户端。</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: Response.java</p> * @version 1.0 */ public class Response{  OutputStream out = null; /** *<br>方法说明:发送信息 *<br>输入参数:String ref 请求的文件名 *<br>返回类型: */  public void Send(String ref) throws IOException {   byte[] bytes = new byte[2048];   FileInputStream fis = null;   try {     //构造文件     File file = new File(WebServer.WEBROOT, ref);     if (file.exists()) {       //构造输入文件流       fis = new FileInputStream(file);       int ch = fis.read(bytes, 0, 2048);       //读取文件       String sBody = new String(bytes,0);       //构造输出信息       String sendMessage = "HTTP/1.1 200 OK\r\n" +         "Content-Type: text/html\r\n" +         "Content-Length: "+ch+"\r\n" +         "\r\n" +sBody;       //输出文件       out.write(sendMessage.getBytes());     }else {       // 找不到文件       String errorMessage = "HTTP/1.1 404 File Not Found\r\n" +         "Content-Type: text/html\r\n" +         "Content-Length: 23\r\n" +         "\r\n" +         "<h1>File Not Found</h1>";       out.write(errorMessage.getBytes());     }      }   catch (Exception e) {     // 如不能实例化File对象,抛出异常。     System.out.println(e.toString() );   }   finally {     if (fis != null)       fis.close();   } } /** *<br>方法说明:构造器,获取输出流 *<br>输入参数: *<br>返回类型: */ public Response(OutputStream output) {   this.out = output; } } import java.io.*; import java.net.*; /** * <p>Title: 客户请求分析</p> * <p>Description: 获取客户的HTTP请求,分析客户所需要的文件</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: Request.java</p> * @version 1.0 */ public class Request{  InputStream in = null; /** *<br>方法说明:构造器,获得输入流。这时客户的请求数据。 *<br>输入参数: *<br>返回类型: */  public Request(InputStream input){   this.in = input;  } /** *<br>方法说明:解析客户的请求 *<br>输入参数: *<br>返回类型:String 请求文件字符 */  public String parse() {   //从Socket读取一组数据   StringBuffer requestStr = new StringBuffer(2048);   int i;   byte[] buffer = new byte[2048];   try {     i = in.read(buffer);   }   catch (IOException e) {     e.printStackTrace();     i = -1;   }   for (int j=0; j<i; j++) {     requestStr.append((char) buffer[j]);   }   S

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号