在進行請求的時候,通常的方式是:request.getParametere("param");來獲得我們想要的一些參數,
但是在現實的生活中我們需要自定義一些URL格式的請求參數,對這些格式的請求參數可能通過request.getParameter("param")
就不是十分的合適。
下面我們以http://www.yongit.com/device/md5/44CF9590006BF252F707?firstParam=gHdg5pU48rHTDknJ&secondParam=1141889120&thirdParam=vjbyPxybdZaNmGa%2ByT272YEAiv4%3D
為例進行自我解析URL中的帶有的一些參數。
具體的方法格式如下:
Map url_queryparams = new HashMap();
String querystring = request.getQueryString();
while(querystring!=null && querystring.length()>0){
String querydata = "";
int queryindex = querystring.indexOf('&');
if(queryindex>0){
querydata = querystring.substring(0, queryindex);
querystring = querystring.substring(queryindex+1);
}else{
querydata = querystring;
querystring = "";
}
if(querydata==null || querydata.length()==0)
continue;
int paramindex = querydata.indexOf('=');
if(paramindex<=0)
continue;
String paramkey = querydata.substring(0, paramindex);
String paramvalue = querydata.substring(paramindex+1);
if(paramvalue==null || paramvalue.length()==0){
//該參數值為空, 忽略它
continue;
}
if(PARAM_AccessKey.equals(paramkey) || PARAM_Signature.equals(paramkey) || PARAM_Expires.equals(paramkey)){
//請求的參數, 添加到Map中
url_queryparams.put(paramkey, paramvalue);
}
}
以上是對該需求進行處理的主題方法,對具體的業務,可以進行適當的修正,以滿足自己的需求。