java解析request或url中的参数工具类代码


本文摘自classinstance.cn。

无论我们在做爬虫时还是在做访问日志解析时,都需要java获取request中的参数、java解析URL问号后的参数。

有时候我们需要从request中获取参数,或者获取拼接在Url后面的参数,有时候一个一个去拿有点麻烦,一起拿出来放在一个map里面需要用哪个就取哪个,方便省事。

代码转载 https://www.bbsmax.com/A/GBJrq74Wz0/

上代码:

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
public class HttpParamUtil {
	/**
	 * 获得url中参数
	 * @param url
	 * @return
	 */
	public static Map<String, Object> getParameter(String url) {
		Map<String, Object> map = new HashMap<String, Object>();
		try {
			final String charset = "utf-8";
			url = URLDecoder.decode(url, charset);
			if (url.indexOf('?') != -1) {
				final String contents = url.substring(url.indexOf('?') + 1);
				String[] keyValues = contents.split("&");
				for (int i = 0; i < keyValues.length; i++) {
					String key = keyValues[i].substring(0, keyValues[i].indexOf("="));
					String value = keyValues[i].substring(keyValues[i].indexOf("=") + 1);
					map.put(key, value);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return map;
	}

	/**
	 * 获取request中参数
	 * 
	 * @param request 页面请求
	 */
	public static Map<String, Object> getRequestParameters(HttpServletRequest request) {
		String parameters = "";// 请求参数

		String urlParameter = request.getQueryString();// 网址中的参数
		if (urlParameter != null && !"".equals(urlParameter)) {
			try {
				urlParameter = URLDecoder.decode(urlParameter, "UTF-8");
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		} else {
			urlParameter = "";
		}
		parameters = urlParameter;

		Map<String, Object> map = new HashMap<String, Object>();
		String[] arr = parameters.split("&");
		for (int i = 0; i < arr.length; i++) {
			String key = arr[i].substring(0, arr[i].indexOf("="));
			String value = arr[i].substring(arr[i].indexOf("=") + 1);
			map.put(key, value);
		}
		return map;
	}

	/**
	 * 测试
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		String url = "www.xxxx.com?id=100001&name=zhangsan&age=25";
		Map<String, Object> map = getParameter(url);

		System.out.println(map);
	}
}

相关阅读 >>

Java反射机制详解

Java 中 string 和 int 类型的互相转化

Java.net.connectexception: connection timed out: connect

Java 面向对象编程三大特性: 封装 继承 多态

Java 教程

Java 中 json 字符串和 model 对象的相互转化

Java stream接口操作 count,anymatch,allmatch,nonematch

Java md5 加密方法

面向对象和面向过程的区别

Java 语言有哪些特点?

更多相关阅读请进入《Java》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...