在进行请求的时候,通常的方式是: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);
}
}
以上是对该需求进行处理的主题方法,对具体的业务,可以进行适当的修正,以满足自己的需求。