java获取request中的参数、java解析URL问号后的参数
java获取request中的参数、java解析URL问号后的参数。有时候我们需要从request中获取参数,或者获取拼接在Url后面的参数,有时候一个一个去拿有点麻烦,一起拿出来放在一个map里面需要用哪个就取哪个,方便省事。
1. java获取request中的参数:
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest; /**
* <p>java获取request中的参数、java解析URL问号后的参数<p>
* @version 1.0
* @author li_hao
* @date 2016年12月21日
*/
public class RequestParametersUtil {
/**
* 获取request中参数
* @param request 页面请求
*/
public static Map<String, Object> getRequestParameters(HttpServletRequest request) {
String parameters="";//请求参数
if("GET".equals(request.getMethod())){//GET请求时的参数
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;
}else if("POST".equals(request.getMethod())){//POST请求时的参数
String totalParameter="";//表单及网址中全部参数
Map<String, String[]> params = request.getParameterMap();
int parametersNum=request.getParameterMap().size();//参数个数
int flag=1;
for (String key : params.keySet()) { String[] values = params.get(key);
for (int i = 0; i < values.length; i++) {
String value = values[i];
totalParameter+= key + "=" + value;
}
if(flag<parametersNum){
totalParameter+="&";
}
flag+=1;
}
parameters=totalParameter;
}
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;
}
}
2. java解析URL问号后的参数:
2.1 获取全部参数放进HashMap中返回:
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.Map; /**
* <p>java获取request中的参数、java解析URL问号后的参数<p>
* @version 1.0
* @author li_hao
* @date 2016年12月21日
*/
public class GetUrlParameter { 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;
} /**
* 测试
* @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);
}
}
测试结果:

2.2 直接获取Url中某个参数:
import java.net.URLDecoder; /**
* <p>java获取request中的参数、java解析URL问号后的参数<p>
* @version 1.0
* @author li_hao
* @date 2016年12月21日
*/
public class GetUrlParameter { public static String getOneParameter(String url,String keyWord) {
String retValue = "";
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);
if (key.equals(keyWord)) {
if (value != null || !"".equals(value.trim())) {
retValue = value;
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return retValue;
} /**
* 测试
*/
public static void main(String[] args) {
String url = "www.xxxx.com?id=100001&name=&age=25";
String value = getOneParameter(url,"id");
String name = getOneParameter(url,"name"); System.out.println(value);
System.out.println("".equals(name));
}
}
测试结果:

java获取request中的参数、java解析URL问号后的参数的更多相关文章
- java 获取request中的请求参数
1.get 和 post请求方式 (1)request.getParameterNames(); 获取所有参数key后.遍历request.getParameter(key)获取value (2)re ...
- coding++:Java 获取request中的参数
第一种: private Map<String,Object> mapParameters(HttpServletRequest request) { //封装查询条件参数 Map< ...
- js取url问号后的参数方法封装
工具方法: function getRequest() { var url = location.search; // 获取url中?后面的字符串 var theRequest = new Objec ...
- 获取request中的查询参数
//获取request中的查询参数 public static Map<String, Object> getRequestParamsByMap(HttpServletRequest r ...
- Java获取路径中的文件名(正则表达式)
Java获取路径中的文件名(正则表达式) 目标 在这个路径中我想得到model2 /E:/2017-02-21--SoftWare/github/test/Java/poiDemo_word2exce ...
- java读取request中的xml
java读取request中的xml 答: // 读取xml InputStream inputStream; StringBuffer sb = new StringBuffer(); inpu ...
- 获取 request 中 json 数据
import java.io.IOException; import javax.servlet.http.HttpServletRequest; /** * request 对象的相关操作 * @a ...
- javaScript获取url问号后面的参数
javaScript获取url问号后面的参数方法 function GetRequest() { var url = location.search; //获取url中"?"符后的 ...
- 转载: js jquery 获取当前页面的url,获取frameset中指定的页面的url(有修改)
转载网址:http://blog.csdn.net/bestlxm/article/details/6800077 js jquery 怎么获取当前页面的url,获取frameset中指定的页面的ur ...
随机推荐
- ionic3使用@angular/http 访问nodejs(koa2框架)服务不能返回数据
cordova的http插件不能使用在browser上,所以当需要在browser上浏览时,需要使用@angular/http 里的方法来访问nodejs服务. 如果出现服务端能够接收请求并相应,而客 ...
- json,pickle,shelve模块,xml处理模块
常用模块学习—序列化模块详解 什么叫序列化? 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes. 为什么要序列化? 你打游戏过程 ...
- MySQL binlog_format中sbr 和rbr(Statement-Based and Row-Based Replication)的优缺点
Advantages of statement-based replication 1 技术成熟 2 对于大量的更新删除等操作,仅仅会写入少量的变更结果,加速日志获取或者备份的速度 3 日志文件包含了 ...
- element-ui-verify使用
element-ui-verify是对ElementUI原本的校验封装之后的插件,并不会影响使用ElementUI的原生校验. 使用环境为vue+element-ui+webpack模块环境,首先使用 ...
- Python通过百度Ai识别图片中的文字
版本:python3.7 工作中有需要识别图片中的汗字,查看了半天大神们的博客,但没找到完全可以用的源码,经过自己的实践,以下源码可以实现: 创建应用 首先你需要登录百度AI,选择文字识别,创建一个应 ...
- Monkey相关参数 笔记
Monkey相关参数 笔记 Monkey是Android系统自带的一个命令行工具,可运行在模拟器里或实际设备中. Monkey可以向被测试的应用程序发送伪随机的用户事件流(如按键.触屏.手势等),实 ...
- 在Windows 10 64-bit上安装Windows SDK 7.1和.NET4
目的: 成功在window10上安装window sdk7.1 和 .NET Framework 4 需求: support some older software written in Visual ...
- POJ1083 Moving Tables
POJ1083 Moving Tables Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 35297 Accepted: ...
- nvm 查看node版本
1. 查看有哪些 node 版本 命令: nvm ls-remote 2. 查看本地node版本 nvm list 3. 版本切换 nvm use 版本号
- Java 公平锁与非公平锁学习研究
最近学习研究了一下Java中关于公平锁与非公平锁的底层实现原理,总结了一下. 首先呢,通过其字面意思,公平与非公平的评判标准就是付出与收获成正比(和社会中的含义差不多一个意思).放到程序中,尤其是 在 ...