request.java

来自「用JAVA做的小型WEB服务器」· Java 代码 · 共 43 行

JAVA
43
字号
import java.io.*;

/*用户请求类*/
public final class Request {
	private String rootdir; //站点文档根目录
	private String requestDoc; //用户请求的文档
	
	/**
	 * 构造器
	 * 第一个参数是用户请求头,用来获取所要请求的文档
	 * 第二个参数是默认主页,如果请求头里没有指定具体某一页面,则返回此默认主页
	 * 第三个参数是站点文档根目录,读取文档时用来指定文档路径
	 */
	public Request(String requestHeader, String defaultPage, String rootdir) {
		int index1 = requestHeader.indexOf("/");
		int index2 = requestHeader.indexOf("HTTP");
		String doc = requestHeader.substring(index1+1,index2-1);
		if(doc.equals("")) {
			requestDoc = defaultPage;
		}else {
			requestDoc = doc;
		}
		this.rootdir = rootdir;
	}
	
	/*获取用户请求的文档*/
	public byte[] getDoc() {
		File file = new File(rootdir + requestDoc);
		System.out.println("getDoc file path = " + file.getPath());
		if(file.exists()) { //判断请求的文档是否存在
			try {
				BufferedInputStream reader = new BufferedInputStream(new FileInputStream(file));
				byte[] doc = new byte[reader.available()];
				reader.read(doc);
				reader.close();
				return doc;
			}catch(IOException ex) {
				ex.printStackTrace();
			}
		}
		return null;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?