java解析出url请求的路径和参数键值对类(解析出url请求的路径,包括页面)

复制代码 代码如下:

  package RequestPackage;

  import java.util.HashMap;

  import java.util.Map;

  public class CRequest {

  /**

  * 解析出url请求的路径,包括页面

  * @param strURL url地址

  * @return url路径

  */

  public static String UrlPage(String strURL)

  {

  String strPage=null;

  String[] arrSplit=null;

  strURL=strURL.trim().toLowerCase();

  arrSplit=strURL.split("[?]");

  if(strURL.length()>0)

  {

  if(arrSplit.length>1)

  {

  if(arrSplit[0]!=null)

  {

  strPage=arrSplit[0];

  }

  }

  }

  return strPage;

  }

  /**

  * 去掉url中的路径,留下请求参数部分

  * @param strURL url地址

  * @return url请求参数部分

  */

  private static String TruncateUrlPage(String strURL)

  {

  String strAllParam=null;

  String[] arrSplit=null;

  strURL=strURL.trim().toLowerCase();

  arrSplit=strURL.split("[?]");

  if(strURL.length()>1)

  {

  if(arrSplit.length>1)

  {

  if(arrSplit[1]!=null)

  {

  strAllParam=arrSplit[1];

  }

  }

  }

  return strAllParam;

  }

  /**

  * 解析出url参数中的键值对

  * 如 "index.jsp?Action=del&id=123",解析出Action:del,id:123存入map中

  * @param URL url地址

  * @return url请求参数部分

  */

  public static Map<String, String> URLRequest(String URL)

  {

  Map<String, String> mapRequest = new HashMap<String, String>();

  String[] arrSplit=null;

  String strUrlParam=TruncateUrlPage(URL);

  if(strUrlParam==null)

  {

  return mapRequest;

  }

  //每个键值为一组

  arrSplit=strUrlParam.split("[&]");

  for(String strSplit:arrSplit)

  {

  String[] arrSplitEqual=null;

  arrSplitEqual= strSplit.split("[=]");

  //解析出键值

  if(arrSplitEqual.length>1)

  {

  //正确解析

  mapRequest.put(arrSplitEqual[0], arrSplitEqual[1]);

  }

  else

  {

  if(arrSplitEqual[0]!="")

  {

  //只有参数没有值,不加入

  mapRequest.put(arrSplitEqual[0], "");

  }

  }

  }

  return mapRequest;

  }

  }

  测试类

  

复制代码 代码如下:

  package RequestPackage;

  import java.util.Map;

  public class TestCRequest {

  /**用于测试CRequest类

  * @param args

  */

  public static void main(String[] args) {

  // 请求url

  String str = "index.jsp?Action=del&id=123&sort=";

  //url页面路径

  System.out.println(CRequest.UrlPage(str));

  //url参数键值对

  String strRequestKeyAndValues="";

  Map<String, String> mapRequest = CRequest.URLRequest(str);

  for(String strRequestKey: mapRequest.keySet()) {

  String strRequestValue=mapRequest.get(strRequestKey);

  strRequestKeyAndValues+="key:"+strRequestKey+",Value:"+strRequestValue+";";

  }

  System.out.println(strRequestKeyAndValues);

  //获取无效键时,输出null

  System.out.println(mapRequest.get("page"));

  }

  }

  测试代码运行效果

  index.jsp

  key:id,Value:123;key:sort,Value:;key:action,Value:del;

  null