您的位置:首页 > 编程语言 > Java开发

java解析出url请求的路径和参数并获取id的工具类

2017-12-18 17:44 651 查看
package com.yanshu.tool;

import java.util.HashMap;

import java.util.*;

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 com.yanshu.tool;

import java.util.Map;

public class TestCRequest {

    /**用于测试CRequest类

     * @param args

     */

    public static void main(String[] args) {

    // 请求url

        String str = "https://detail.tmall.com/item.htm?ali_trackid=2:mm_127850671_40826346_165432561:1513587972_308_1656486254&id=557374212659";    

       

        //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(mapRequest);

        //取map的值

        for(String key:mapRequest.keySet())

        {

         System.out.println(key);

         if(key=="id"||"id".equals(key))

         {

         

        String id=mapRequest.get(key);

        System.out.println("map的值:"+id);

         }

        }

        

    

       

     

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: