📄 httprequest.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 + -