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问号后的参数的更多相关文章

  1. java 获取request中的请求参数

    1.get 和 post请求方式 (1)request.getParameterNames(); 获取所有参数key后.遍历request.getParameter(key)获取value (2)re ...

  2. coding++:Java 获取request中的参数

    第一种: private Map<String,Object> mapParameters(HttpServletRequest request) { //封装查询条件参数 Map< ...

  3. js取url问号后的参数方法封装

    工具方法: function getRequest() { var url = location.search; // 获取url中?后面的字符串 var theRequest = new Objec ...

  4. 获取request中的查询参数

    //获取request中的查询参数 public static Map<String, Object> getRequestParamsByMap(HttpServletRequest r ...

  5. Java获取路径中的文件名(正则表达式)

    Java获取路径中的文件名(正则表达式) 目标 在这个路径中我想得到model2 /E:/2017-02-21--SoftWare/github/test/Java/poiDemo_word2exce ...

  6. java读取request中的xml

    java读取request中的xml   答: // 读取xml InputStream inputStream; StringBuffer sb = new StringBuffer(); inpu ...

  7. 获取 request 中 json 数据

    import java.io.IOException; import javax.servlet.http.HttpServletRequest; /** * request 对象的相关操作 * @a ...

  8. javaScript获取url问号后面的参数

    javaScript获取url问号后面的参数方法 function GetRequest() { var url = location.search; //获取url中"?"符后的 ...

  9. 转载: js jquery 获取当前页面的url,获取frameset中指定的页面的url(有修改)

    转载网址:http://blog.csdn.net/bestlxm/article/details/6800077 js jquery 怎么获取当前页面的url,获取frameset中指定的页面的ur ...

随机推荐

  1. WEB 性能优化导图

    看了一下网上对于web性能优化的一些帖子,不是很直观,花了点时间画了一个思维导图. refers: https://segmentfault.com/a/1190000011936772 https: ...

  2. python3-可变长度参数函数(*args 和 **kwargs)

    简述: *args:    可变长度元组参数    **kwargs: 可变长度字典参数 ------------------------------------------------------- ...

  3. TCP/IP学习20180709-数据链路层-arp协议

    arp协议:address resolution protocol地址解析协议数据链路层,每个数据包都有MAC地址.主机是怎样根据对方主机的ip地址知道对方主机的mac地址呢?通过arp协议.主机里有 ...

  4. HTTP请求的502、504、499错误

    1.名词解释 502 Bad Gateway:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应(伪响应). 504 Gateway Time-out:作为网关或者代理工作的服务 ...

  5. MySQL 错误集-汇总

    Q&A: MySQl报错之@@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_MODE = ON 导入的时候加入-f参数即可 原因分 ...

  6. centos7搭建GitLab

    1.安装依赖 yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python ...

  7. 使用JavaScript制作页面效果3

    一. 1.下拉列表:select对象 属性: option[ ]:选项数组 selectedIndex:被选中选项的索引号 length:选项总数 方法: add(option对象,添加位置):增加选 ...

  8. 63.1拓展之box-shadow属性

    效果地址:https://scrimba.com/c/cQpyKbUp 效果图: HTML code: <div class="loader"></div> ...

  9. redis 模糊删除key

    redis-cli KEYS "pattern" | xargs redis-cli DEL Redis keys命令支持模式匹配,但是del命令不支持模式匹配,有时候需要根据一定 ...

  10. myeclipse2017+ssm+tomcat8+jdk1.8

    练习上手ssm项目 工具:myeclipse2017,spring4,jdk1.8,tomcat8 搭建链接:https://www.cnblogs.com/cuglkb/p/6734666.html ...