欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-24 09:18:34
复制代码 代码如下: package requestpackage; import java.util.hashmap; import java.util.map; pub...
复制代码 代码如下:

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