-
2018-04-28 15:54:34
package test; import java.util.ArrayList; import java.util.HashMap; public class ParseUrlUtil implements java.io.Serializable{ private static final long serialVersionUID = -2419331782437199701L; // 保存URL参数的容器 public HashMap<String,String> strUrlParas ; //private ArrayList<String> needDecode; public ParseUrlUtil() { super(); this.strUrlParas = new HashMap<String,String>(); this.needDecode = new ArrayList<String>(); } /** * @description 解析日志url * @param url 需要解析的单条日志内容 */ public void parser(String url){ strUrlParas.clear(); // 传递的URL参数 String strUrl = ""; String strUrlParams = ""; // 解析访问地址 if(url.contains("?")){ String[] strUrlPatten = url.split("\\?"); strUrl = strUrlPatten[0]; strUrlParams = strUrlPatten[1]; }else{ strUrl = url; strUrlParams = url; } strUrlParas.put("URL", strUrl); // 解析参数 String[] params = null; if(strUrlParams.contains("&")){ params = strUrlParams.split("&"); }else{ params = new String[] {strUrlParams}; } // 保存参数到参数容器 for(String p:params){ if(p.contains("=")) { String[] param = p.split("="); if(param.length==1){ strUrlParas.put(param[0],""); }else{ String key = param[0]; String value = param[1]; strUrlParas.put(key, value); } }else { strUrlParas.put("errorParam",p); } } } }
更多相关内容 -
java解析request或url中的参数工具类代码
2021-02-12 15:57:57无论我们在做爬虫时还是在做访问日志解析时,都需要java获取request中的参数、java解析URL问号后的参数。有时候我们需要从request中获取参数,或者获取拼接在Url后面的参数,有时候一个一个去拿有点麻烦,一起拿出来...无论我们在做爬虫时还是在做访问日志解析时,都需要java获取request中的参数、java解析URL问号后的参数。有时候我们需要从request中获取参数,或者获取拼接在Url后面的参数,有时候一个一个去拿有点麻烦,一起拿出来放在一个map里面需要用哪个就取哪个,方便省事
上代码:
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 getParameter(String url) {
Map map = new HashMap();
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 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 map = new HashMap();
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 map = getParameter(url);
System.out.println(map);
}
}
-
java解析出url请求的路径和参数键值对类(解析出url请求的路径,包括页面)
2021-01-08 21:30:25public class CRequest { /** * 解析出url请求的路径,包括页面 * @param strURL url地址 * @return url路径 */ public static String UrlPage(String strURL) { String strPage=null; String[] arrSplit=null; ... -
JAVA工具类之URL(编码、解码、参数解析)
2018-02-01 18:31:17UrlUtil.java package com.bigbigbu.util.http; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang3.StringUtils; /** * @TitUrlUtil.java
package com.bigbigbu.util.http; import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang3.StringUtils; /** * @Title: UrlUtil * @Description: URL(编码、解码、参数解析) * @Company: 卜凡起的博客 * @author FANQIBU * @date 2018年2月1日 */ public class UrlUtil { private final static String ENCODE = "GBK"; /** * URL 解码 * * @return String * @author lifq * @date 2015-3-17 下午04:09:51 */ public static String getURLDecoderString(String str) { String result = ""; if (null == str) { return ""; } try { result = java.net.URLDecoder.decode(str, ENCODE); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return result; } /** * URL 转码 * * @return String * @author lifq * @date 2015-3-17 下午04:10:28 */ public static String getURLEncoderString(String str) { String result = ""; if (null == str) { return ""; } try { result = java.net.URLEncoder.encode(str, ENCODE); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return result; } /** * 正则替换 * @param url * @param name * @param value * @return */ public static String replaceUrlParameterReg(String url, String name, String value) { if (StringUtils.isNotBlank(url) && StringUtils.isNotBlank(value)) { url = url.replaceAll("(" + name + "=[^&]*)", name + "=" + value); } return url; } /** * 正则替换 * @param url * @param name * @param value * @return */ public static String getUrlParameterReg(String url, String name) { Map<String, String> mapRequest = new HashMap<String, String>(); String[] arrSplit=null; String strUrlParam=TruncateUrlPage(url); if(strUrlParam==null) { return ""; } //每个键值为一组 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.get(name); } /** * 去掉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; } public static void main(String[] args) { String str ="/activePage?wxto=0C29975119DE037B4F25CD119CF4CF11&activity2018topid=oz9Zj07Jg5O9IfAyVauT-GL-CSfM&activity2018topunid=o-NUA0l8fxm2_5fmK_ocpyxrP1dE&subscribe=0×tamp=1516008942920&-NUA0l8fxm2_5fmK_ocpyxrP1dE&oaccesstoken=5_xJYY3gnUTD4pqJFc7_ltbvclb0ZRKOFBEc5BXAwi7vjZndRAN58AkPazqUJDGzBbrw-J1ag1PF0C-S39SqJflA&m=1&wxt=C9A58DA3804E46981BF4B78C8C862743&-NUA0oHjJjCcyGe-wJdEFYjwrfU&-NUA0oHjJjCcyGe-wJdEFYjwrfU&-NUA0oHjJjCcyGe-wJdEFYjwrfU"; System.out.println( getUrlParameterReg(str,"wxto")); } }
-
HTTP url解析
2018-11-30 14:27:43http的url参数解析,包括编解码等功能 -
Java 解析url,获取参数
2021-03-09 23:04:05一个简单的解析url,获取参数的Java工具类import java.util..../*** @author lixk* @description url工具类* @date 2018/9/26 9:58*/public class UrlUtil {public static class UrlEntity {/*** 基础url*/publ...一个简单的解析url,获取参数的Java工具类
import java.util.HashMap;
import java.util.Map;
/**
* @author lixk
* @description url工具类
* @date 2018/9/26 9:58
*/
public class UrlUtil {
public static class UrlEntity {
/**
* 基础url
*/
public String baseUrl;
/**
* url参数
*/
public Map params;
}
/**
* 解析url
*
* @param url
* @return
*/
public static UrlEntity parse(String url) {
UrlEntity entity = new UrlEntity();
if (url == null) {
return entity;
}
url = url.trim();
if (url.equals("")) {
return entity;
}
String[] urlParts = url.split("\\?");
entity.baseUrl = urlParts[0];
//没有参数
if (urlParts.length == 1) {
return entity;
}
//有参数
String[] params = urlParts[1].split("&");
entity.params = new HashMap<>();
for (String param : params) {
String[] keyValue = param.split("=");
entity.params.put(keyValue[0], keyValue[1]);
}
return entity;
}
/**
* 测试
*
* @param args
*/
public static void main(String[] args) {
UrlEntity entity = parse(null);
System.out.println(entity.baseUrl + "\n" + entity.params);
entity = parse("http://www.123.com");
System.out.println(entity.baseUrl + "\n" + entity.params);
entity = parse("http://www.123.com?id=1");
System.out.println(entity.baseUrl + "\n" + entity.params);
entity = parse("http://www.123.com?id=1&name=小明");
System.out.println(entity.baseUrl + "\n" + entity.params);
}
}
运行输出结果
null
null
http://www.123.com
null
http://www.123.com
{id=1}
http://www.123.com
{name=小明, id=1}
-
java工具类-解析出url参数中的键值对
2017-09-25 10:15:55* 解析出url参数中的键值对 * 如 "index.jsp?Action=del&id=123",解析出Action:del,id:123存入map中 * * @param URL url地址 * @return url请求参数部分 */ public static Map URLRequest(String URL) -
ImageTypeUtil工具类:Java获取URL对应的文件类型及其后缀
2020-06-12 00:56:562、使用lastIndexOf去解析url字符串。 这种方法最简单高效。 3、UrlConnection获取ContentType的类型推测出文件的类型。 这里我封装了一个工具类,将第二种方法和第三种方法结合。 package johny.utils; ... -
JAVA http请求工具类
2022-01-14 11:08:12日常工作难免遇到调用其他项目接口,一般都是restful风格,这个并非强制风格,根据项目不同能使用的工具不同,主要受限于项目类型:maven项目,一般项目等。有原生http协议进行交互,java原生自带对http的支持并不... -
java获取url连接地址参数的工具类
2017-12-25 09:37:26package com.yanshu.tools; import java.util.HashMap; import java.util.*; public class CRequest { ... * 解析出url请求的路径,包括页面 * @param strURL url地址 * @return url路径 */ -
java之Excel处理工具类
2021-09-30 08:54:27/** * Excel工具类 * * @author lp */ public class ExcelUtil { public static final String OFFICE_Excel_2003_POSTFIX = "xls"; public static final String OFFICE_Excel_2010_POSTFIX = "xlsx"; public static... -
一些常见好用的java工具类
2021-09-14 19:19:45HttpClient工具类5. json处理工具类 1. 计算器 import java.util.ArrayList; import java.util.Stack; /** * 计算使用util * * @author aa * @since 2020-11-16 */ public class CalculatorUtil { /** * ... -
java解析shp文件以及坐标转换(工具类)
2020-04-09 14:18:22百度找了很多大部分都是pom的,maven项目中的,但是用maven...直接上代码,最后我会解析shp文件所用到的所有jar截图粘上 package com.common.utils; import java.io.File; import java.io.IOException; import j... -
【Java 代码实例 13】Java操作pdf的工具类itext
2022-04-17 14:17:041、代码中的常量定义 ... import ... /** * itext PDF操作 */ public class PDFInit { public static final String FILE_... public static final String const_JPG_JAVA = FILE_DIR + "java.jpg"; public static fi -
Java Utils工具类大全
2019-01-21 23:06:10另外希望身为Java牛牛的你们一起测试和完善,欢迎入群263641914 一起封装和完成常用的Java代码。 节约撸码时间以方便有更多的时间去把妹子~ #开发环境 Win7x64 JDK1.7 IDEA14 #项目结构 │ README.m... -
java解析出url请求的路径和参数并获取id的工具类
2017-12-18 17:44:36package com.yanshu.tool; import java.util.HashMap; import java.util.*; public class CRequest { ... * 解析出url请求的路径,包括页面 * @param strURL url地址 * @return url路径 */ -
java后台工具类调用api接口,解析数据
2019-05-10 13:56:26httpclient后台调用接口,解析数据 一 、 引入jar包 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> ... -
解析URL中的参数
2019-11-15 09:35:42例如URL :http://127.0.0.1:8080/free07/QueryTest?from=5&to=20&...封装一个对URL进行解析的工具类,方便以后的快速使用 注:request.getQueryString() 返回的是:from=5&to=20&nam... -
URLEncodedUtils.java 获取Url中的字段value值
2016-07-15 14:04:21Apache 官方 URLEncodedUtils.java 工具类,可以用来获取Url中的字段value值 -
java 获取MP4时长 | Java工具类
2021-10-20 11:22:20/** @Author huyi @Date 2021/10/20 11:09 @Description: MP4工具类 */ @Slf4j public class Mp4Utils { public static long readDuration(Path mp4Path) { if (Files.notExists(mp4Path) || !Files.isReadable(mp4... -
IP地址解析工具类
2022-03-22 14:38:58QQWry.dat是显IP版QQ的数据库文件,用于获取对方IP及位置,纯真IP数据库也采用了这个格式,并沿用至今。通过ip地址解析出地理位置和服务商信息,通过网上接口也可以就是收费而且又慢。 -
JAVA——Okhttp封装工具类
2020-09-27 23:08:29import java.security.SecureRandom; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.concurrent.TimeUnit; /** * @author ShenTuZhiGang * @... -
JAVA工具类Hutool介绍与使用
2021-03-11 16:52:33Hutools是一个简单易使用的开源工具类 官方参考文档 https://hutool.cn/docs 常用功能 字符串工具 时间操作、转化、对比工具 文件读取、写入、下载等 数据库链接、增删改查 HTTP客户端、网络请求、响应 ... -
java后台处理base64编码图片的转换工具类
2019-07-29 14:05:24import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.... -
URL获取连接参数
2013-01-20 17:19:27获取URL的链接,并且通过IO读写后,转换成字符串返回,URL需要设置的参数都在这里,导入代码就可以运行测试 -
JAVA常用工具类
2018-09-11 22:28:32JAVA常用工具类(根据GITHUB代码统计) 从Google你能搜索到大量的关于Struts,Spring,Hibernate,iBatis等比较大的框架的资料,但是很少有人去关注一些小的工具包,但是当你真正知道了这些包的用处之后,你会发现它能很... -
Java Hutool(糊涂)工具类索引记录
2021-05-17 08:48:44有时候工具类太多,包括项目封装的,不知道用哪一个,在这里记录下目录,方便查找 介绍 Hutool 是一个 Java 工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让 Java 语言也可以“甜甜的”。... -
Java解析url地址字符串,获得请求参数(基于JDK1.4)
2012-09-26 17:12:55项目中,需要一个解析URL并获取参数信息的工具类。 JDK版本要求:1.4 【解决方案】 1)增加一个解析URL的HttpRequestParser工具类 public class HttpRequestParser 2)代码如下: /* * 创建日期 ... -
HttpUrl解析工具类NetUtils
2017-11-01 19:55:47HttpUrl解析工具类NetUtils,可以解析json数据中的文字和图片,唉,这算是解析吧!