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

JAVA获取请求地址,将参数解析成MAP

2017-07-06 11:07 926 查看
第一种方式:

HttpServletRequest request=this.getHttpServletRequest();

from = request.getParameter("from");//参数变量名叫from

第二种方式:

//获取请求 URL

HttpServletRequest request=this.getHttpServletRequest();

String url = request.getScheme()+"://"; //请求协议 http 或 https

url+=request.getHeader("host"); // 请求服务器

url+=request.getRequestURI(); // 工程名

if(request.getQueryString()!=null) //判断请求参数是否为空

url+="?"+request.getQueryString(); // 参数

//获取?前面的部分

String urlq = UrlPage(url);

//获取?后面的部分

String asd = TruncateUrlPage(url);

Map<String, String> ddd = URLRequest(url);

String fff = ddd.get("from");

/**

* 解析出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;

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