资源简介
这是《计算机网络》的课程设计--多线程的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个文件信息
- 上一篇:蓝牙开发demo
- 下一篇:WINRAR简体中文特别版
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论