zoukankan      html  css  js  c++  java
  • java解析出url请求的路径和参数键值对类

    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;
        }
          //每个键值为一组 www.2cto.com
        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
  • 相关阅读:
    Python中的字典
    Python中的元组
    Python中常见的公共方法
    Python中的列表
    Python的循环语句
    Python的流程控制
    Kubernetes-kubectl命令出现错误【The connection to the server localhost:8080 was refused
    nyoj 77-开灯问题 (倍数遍历)
    nyoj 76-超级台阶 (递推)
    nyoj 75-日期计算 (闰年与平年的判断)
  • 原文地址:https://www.cnblogs.com/huhuuu/p/4704839.html
Copyright © 2011-2022 走看看