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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2011-08-05 字符串处理——PKU3623