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