• 大小: 1.98MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-25
  • 语言: Java
  • 标签: 服务器  CGI  Java  Web  HTTP  

资源简介

这是《计算机网络》的课程设计--多线程的Web服务器(带有课程设计报告),里面为Eclipse3.5的工程。支持HTTP1.1(但是不完善),支持多线程(采用的线程池),支持简单CGI(仅PHP的CGI模块通过测试),支持配置文件和简单的日志记录。要支持PHP的动态脚本的话,需要自行下载PHP的文件到php目录下,并且更改设置,开启PHP的CGI模式。(请先看下里面的"说明.txt")(温馨提示:下载后评论【需要评选等级】会返回被扣除的积分)

资源截图

代码片段和文件信息

package org.microwebserver;

import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;

/**
 * 分析HTTP头部
 * @author 蠍ヤ緣
 *
 */
public class AnalysisHttpHeader {

/**
 * HTTP头部的Method
 */
public String method;
/**
 * 请求的URL地址(除去了?后的内容)
 */
public String URL;
/**
 * 请求的HTTP版本号
 */
public String version;
/**
 * GET里面的查询语句
 */
public String get_query = null;
/**
 * 请求的文件类型,实为文件后缀(强制小写,避免改变大小写而窃取文件)
 */
public String file_type;
/**
 * 请求的文件
 */
public File file = null;
/**
 * HTTP的头部字段map
 */
public Map map;

private String[] KEY = { “Host“
                “User-Agent“
                “Accept“
                “Referer“
                “Accept-Language“
                “Content-Type“
                “Content-Length“
                “Cache-Control“
                “Accept-Encoding“
                “UA-CPU“
                “Date“};

private String key;
private String value;
    
public AnalysisHttpHeader(StringBuilder sb){
map = new HashMap();
StringTokenizer st = new StringTokenizer(sb.toString()“\r\n“); //按换行符分隔
String method_line = st.nextToken(); //头行
StringTokenizer st_method_line = new StringTokenizer(method_line“ “); //按空格分开
method  = st_method_line.nextToken();
URL     = st_method_line.nextToken();
version = st_method_line.nextToken();

while(st.hasMoreTokens()){
String[] next = st.nextToken().split(“: “); //按: 分隔
key = next[0];
value = next[1];
for(int i=0;i if(key.equals(KEY[i])){
map.put(KEY[i]value);
break;
}
}
}

StringTokenizer query = new StringTokenizer(URL“?“);
if(query.countTokens() == 2){
URL = query.nextToken();
get_query = query.nextToken();
}

String host;
if((host=map.remove(“Host“))!=null){
String[] ts = host.split(“:“);
map.put(“Host“ ts[0]);
}

if(URL.endsWith(“/“))
URL += Config.HOME_PAGE;

StringTokenizer st_type = new StringTokenizer(URL“.“);
while(st_type.hasMoreTokens()){
file_type = st_type.nextToken().toLowerCase();
}

file = new File(Config.WEB_PATH+URL);
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2010-12-01 22:33  MicroWebServer\.classpath

     文件        390  2010-12-01 22:33  MicroWebServer\.project

     文件        629  2010-12-01 22:33  MicroWebServer\.settings\org.eclipse.jdt.core.prefs

     文件       2819  2010-12-04 23:38  MicroWebServer\bin\org\microwebserver\AnalysisHttpHeader.class

     文件        340  2010-12-04 23:38  MicroWebServer\bin\org\microwebserver\CGIData.class

     文件       2149  2010-12-05 01:10  MicroWebServer\bin\org\microwebserver\CGIServer$CgiThread.class

     文件       4934  2010-12-05 01:10  MicroWebServer\bin\org\microwebserver\CGIServer.class

     文件       3029  2010-12-04 23:38  MicroWebServer\bin\org\microwebserver\Config.class

     文件       1865  2010-12-05 01:11  MicroWebServer\bin\org\microwebserver\FileType.class

     文件       2505  2010-12-05 01:34  MicroWebServer\bin\org\microwebserver\HttpResponse.class

     文件       2909  2010-12-04 23:38  MicroWebServer\bin\org\microwebserver\ServerLog.class

     文件       1972  2010-12-04 23:38  MicroWebServer\bin\org\microwebserver\ThreadPool$ThreadWork.class

     文件       2586  2010-12-04 23:38  MicroWebServer\bin\org\microwebserver\ThreadPool.class

     文件       3038  2010-12-05 01:20  MicroWebServer\bin\org\microwebserver\WebServer.class

     文件       5913  2010-12-05 01:36  MicroWebServer\bin\org\microwebserver\WebThread.class

     文件       1132  2011-02-20 15:18  MicroWebServer\config.ini

     文件       8124  2010-12-04 22:00  MicroWebServer\file_type.ini

     文件      40448  2010-07-21 20:37  MicroWebServer\php\php-cgi.exe

     文件       2390  2010-12-04 17:09  MicroWebServer\src\org\microwebserver\AnalysisHttpHeader.java

     文件        207  2010-12-04 14:37  MicroWebServer\src\org\microwebserver\CGIData.java

     文件       4509  2010-12-05 01:10  MicroWebServer\src\org\microwebserver\CGIServer.java

     文件       3541  2010-12-04 16:23  MicroWebServer\src\org\microwebserver\Config.java

     文件       1542  2010-12-05 01:11  MicroWebServer\src\org\microwebserver\FileType.java

     文件       1839  2010-12-05 01:34  MicroWebServer\src\org\microwebserver\HttpResponse.java

     文件       2470  2010-12-04 16:25  MicroWebServer\src\org\microwebserver\ServerLog.java

     文件       2389  2010-12-01 22:43  MicroWebServer\src\org\microwebserver\ThreadPool.java

     文件       2037  2010-12-05 01:20  MicroWebServer\src\org\microwebserver\WebServer.java

     文件       5074  2010-12-05 22:58  MicroWebServer\src\org\microwebserver\WebThread.java

     文件        813  2010-12-05 01:42  MicroWebServer\web\gp.html

     文件        509  2011-02-20 14:18  MicroWebServer\web\index.html

............此处省略21个文件信息

评论

共有 条评论