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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值