获取URL中附带的请求参数的方式

在进行请求的时候,通常的方式是: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);
  }
}

 

以上是对该需求进行处理的主题方法,对具体的业务,可以进行适当的修正,以满足自己的需求。

 

posted on 2016-04-22 14:50  夜晚的猫头鹰  阅读(2831)  评论(0编辑  收藏  举报

导航