资源简介
这是《计算机网络》的课程设计--多线程的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卡虚拟机规范V2.2.1(中文版)
- 小码哥java大神班
- Java基础与案例开发详解源码.zip
- jsp+servlet+mysql做的bbs系统
- 基于JAVA的音乐音频视频播放器源代码
- C# RSA加密、支持JAVA格式公钥私钥
- JavaOpenGL 32位和64位jar包
- 进销存管理系统(java+sql server)
- java GUI做的抽奖转盘
- 基于阿里云的java网盘 OSS网盘实现_3分
- java编写的b树演示工具
- java聊天程序群聊,私聊,传输文件,
- 超级玛丽简洁版java源码
- 微信支付 Java servlet版源码
- java 培训管理系统
- SQL Server数据库 + Java 某高校选课系统
- 图书馆管理系统Java+数据库
- 基于JavaWeb的博客网站的设计与实现论
- ARMA模型与ARIMA模型java实现例程
- 《C++ for Java Programmers》高清完整英文
- java激活邮箱验证资料
- JAVA毕业论文
- IKM在线测试 JAVA 带参考答案
- 图书管理系统源代码+报告
- 招聘网 java mysql
- 网上书店管理系统(java-web项目)
- 在线问卷调查系统
- 关于Java的英文文献
- JAVAJSP在线收藏夹源码
- 俄罗斯方块java版
评论
共有 条评论