URLUtil(在url上往后追加参数和取出指定的参数)

 一个实用的工具类,用java代码处理URL链接取出指定的参数值、往后追加参数。(其实就是简单的字符串处理,用了正则表达式进行分析)

package com.neusoft.talentbase.staffing.common.utils;

import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class URLUtil {

	/**
	 * 在url上往后追加参数
	 * @Description:    
	 * @param url
	 * @param data
	 * @return
	 * EHRvendor4 <Email>xiong.bw@neusoft.com</Email> 
	 * 2020年8月12日
	 */
	public static String appendUrl(String url, Map<String, Object> data) {
	    String newUrl = url;
	    StringBuffer param = new StringBuffer();
	    for (String key : data.keySet()) {
	        param.append(key + "=" + data.get(key).toString() + "&");
	    }
	    String paramStr = param.toString();
	    paramStr = paramStr.substring(0, paramStr.length() - 1);
	    if (newUrl.indexOf("?") >= 0) {
	        newUrl += "&" + paramStr;
	    } else {
	        newUrl += "?" + paramStr;
	    }
	    return newUrl;
	}

	/**
	 * 取出指定的参数
	 * @Description:    
	 * @param url
	 * @param name
	 * @return
	 * EHRvendor4 <Email>xiong.bw@neusoft.com</Email> 
	 * 2020年8月12日
	 */
	public static String getParamByUrl(String url, String param) {
	    url += "&";
	    String pattern = "(\\?|&){1}#{0,1}" + param + "=[a-z|A-Z|0-9|\\-|\\:]*(&{1})";

	    Pattern r = Pattern.compile(pattern);

	    Matcher m = r.matcher(url);
	    if (m.find()) {
	        return m.group(0).split("=")[1].replace("&", "");
	    } else {
	        return null;
	    }
	}
	
//	public static void main(String[] args) throws Exception {
//	     String url = "http://test.com?name=abd&id=1&age=18";
//	    String url = "/sc/dc/addInfoOfNewEmp/addInfoOfNewEmpVM/biztemplateview.view?employeeId=2cdf3bd220b44930b7aa068631f723ee&eventCode=addInfoOfNewEmp&procInstId=6c8c40f:173bdb3d2e5:-7cf4";
//	    System.out.println(getParamByUrl(url, "procInstId"));
//	    Map<String, Object> data = new HashMap<>();
//	    data.put("123", "12332123132213");
//	    System.out.println(appendUrl(url, data));
//	}
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值