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 ...
随机推荐
- 使用Excel自动生成sql语句
在近一段日子里,进入了新的项目组,由于项目需要,经常要将一些Excel表中的数据导入数据库中,以前并没有过多的接触过数据导入与数据处理,对于我来说比较痛苦,今天下午花了几个小时处理数据,但是同事给我提 ...
- App_Code目录类文件无法被调用的解决方法
1.选中类文件,在属性中的“生成操作”默认的“内容”改为“编译”就可以了. 2.重新生成解决方案
- 前端-JavaScript练习2
用户输入一个年份,判断这个年是否是闰年. 判断闰年条件: ① 非整百年数除以4,无余为闰,有余不闰: ② 整百年数除以400,无余为闰,有余不闰. 比如: 2000年,整百数年,就要用②公式,除以40 ...
- visual studio 2015引入开源控件DockPanel(最简单的方法)
一.DockPanel简介 DockPanel是一个开源控件,能够实现子窗口的浮动,在官方给的demo有演示,在vs2017微软已经集成进入常用控件中.我主要使用的是多窗口浮动,和tabControl ...
- Hadoop 2.8集群安装及配置记录
第一部分:环境配置(含操作系统.防火墙.SSH.JAVA安装等) Hadoop 2.8集群安装模拟环境为: 主机:Hostname:Hadoop-host,IP:10.10.11.225 节点1:Ho ...
- 洛谷题解 CF777A 【Shell Game】
同步题解 题目翻译(可能有童鞋没读懂题面上的翻译) 给你三张牌0,1,2. 最初选一张,然后依次进行n次交换,交换规则为:中间一张和左边的一张,中间一张和右边一张,中间一张和左边一张...... 最后 ...
- mybatis入门篇:Mybatis注解方式的基本用法
@Select 1.mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <! ...
- vue2.0插件--loading
loading效果很常见,常见到我们任何一个项目中,都可以见到他的身影.今天就以loading作为切入口,唠叨一下vuejs的插件的写法. 看vuejs官方文档关于插件的说明,关于使用插件和写插件,V ...
- Android 开发 RecyclerView设置间距
实现步骤 首先要创建一个类继承RecyclerView.ItemDecoration 然后重新这个类的getItemOffsets方法,删除方法里的super.getItemOffsets(outRe ...
- ajax的4个字母分别是什么意思
Asynchronous JavaScript and XML 的缩写,异步的JavaScript和XML.在不重新加载整个页面的情况下 ,AJAX 与服务器交换数据并更新部分网页.