java解析出url请求的路径和参数键值对类 - 转
2015-08-05 15:32
211 查看
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
相关文章推荐
- wsdl2java 生产客户端类名摩擦解决方案
- win7 中如何设置eclipse的背景色--Console
- SpringMVC设置不经过Controller,直接重定向的方法
- java内部类的理解
- 浅析Java设计模式之适配器模式
- 为什么父进程不处理标准输入输出子进程会挂起(Java)?
- struts.xml 中配置常量constant详解
- eclipse下安装Hadoop插件
- Java二维数组在内存空间的实质
- win7 中如何设置eclipse的背景色--Packge Explorer
- Windows Myeclipse 10 安装 Perl 插件
- Caused by: java.lang.ClassNotFoundException: Didn't find class "XXX" on path: DexPathList[[zip file
- Linkedin工程师是如何优化他们的Java代码的
- Java 嵌套类(Nested Class):静态嵌套类,内部类,局部类,匿名类
- Spring MVC启动过程(1):ContextLoaderListener初始化
- struts2 赋值 java.lang.NoSuchMethodExceptio
- win7 中设置eclipse的背景色-编辑器
- mybatis 校验报错问题[myeclipse 8.5]
- java中设置JButton的背景图片,并在它上面显示文字
- java多态的理解