⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 httprequest.java

📁 通讯计费系统
💻 JAVA
字号:
package cfq.fare.res_req;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;

public class HttpRequest {
	InputStream is=null;
	
	public HttpRequest(InputStream is){
		this.is=is;
		parseInput();
	}
	
	private String path;         //请求的路径
	
	private String urlPattern;   //请求的业务对象
	
	private String queryString;   //查询字符串
	
	private Map<String ,String> parameter=new HashMap();
	
	public String toString() {
		StringBuffer strbuff=new StringBuffer();
		strbuff.append("path:"+path+"\n");
		strbuff.append("urlPattern:"+urlPattern+"\n");
		strbuff.append("queryString:"+queryString+"\n");
		strbuff.append("parameter:"+parameter.toString()+"\n");
		
		return strbuff.toString();
	}
	
	private void parseInput(){
		
		byte[] buffer=new byte[1024];
		try {
			is.read(buffer);
		} catch (IOException e) {
			e.printStackTrace();
		}
		String reqInfo=new String(buffer);
		int urlStart=reqInfo.indexOf("/");
		int urlEnd=reqInfo.indexOf("?");
		int queryEnd=reqInfo.indexOf("HTTP/");
		if(urlEnd<0){
			urlEnd=queryEnd;
		}
		path=reqInfo.substring(urlStart, urlEnd);
		queryString=reqInfo.substring(urlEnd, queryEnd);
		if(queryString.startsWith("?")){
			queryString=queryString.substring(1,queryString.length());
		}
		parseQueryInfo(queryString);
		int patterIndex=path.lastIndexOf("/");
		urlPattern=path.substring(patterIndex, path.length());
		
System.out.println(reqInfo);
	}
	
	// 解析查询字符串
	public void parseQueryInfo(String queryStr){
		StringTokenizer stk=new StringTokenizer(queryStr,"&");
		while(stk.hasMoreElements()){
			String temptStr=stk.nextToken();
			String[] temptArray=temptStr.split("=");
			if(temptArray.length==2){
				parameter.put(temptArray[0], temptArray[1]);
			}
		}
	}
	
	public String getParameter(String parStr)throws Exception {
		if(!(parameter.containsKey(parStr))){
			throw new Exception("no key exist");
		}
		return parameter.get(parStr);
	}

	public InputStream getIs() {
		return is;
	}

	public void setIs(InputStream is) {
		this.is = is;
	}

	public String getPath() {
		return path;
	}

	public void setPath(String path) {
		this.path = path;
	}

	public String getUrlPattern() {
		return urlPattern;
	}

	public void setUrlPattern(String urlPattern) {
		this.urlPattern = urlPattern;
	}

	public String getQueryString() {
		return queryString;
	}

	public void setQueryString(String queryString) {
		this.queryString = queryString;
	}

	

	public void setParameter(Map<String, String> parameter) {
		this.parameter = parameter;
	}

}

⌨️ 快捷键说明

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