request获取数据的几种方法
1、request.getparameter();
//只接收前台穿过来的一个指定的参数 String value=request.getparameter("key");
2、request.getParameterMap();
说白了前端提交到Servlet或者Action里面的参数Map,如果你是以表单提交,那么request.getParameterMap()中将包含你表单里面所有input标签的数据,以其name为key,以其value为值,如果你是以ajax提交的话,就是你自己组织的所有参数了。
有时候页面传来多个参数的情况下,要写多个request.getParameter(name)进行逐个接收,但是当传过来的参数非常多的时候,代码就显得有些臃肿了,下面举个例子:
//这个也是支付宝回调的信息
@RequestMapping("alipay_callback.do")
@ResponseBody
public Object alipayCallback(HttpServletRequest request){
Map<String,String> params = Maps.newHashMap();
//getParameterMap()一般多用于接收前台表单多参数传输的数据
Map requestParams = request.getParameterMap();
for(Iterator iter = requestParams.keySet().iterator();iter.hasNext();){
String name = (String)iter.next();
String[] values = (String[]) requestParams.get(name);
String valueStr = "";
for(int i = 0 ; i <values.length;i++){ valueStr = (i == values.length -1)?valueStr + values[i]:valueStr + values[i]+",";
}
//把数据全部加进map集合中
params.put(name,valueStr);
}
logger.info("支付宝回调,sign:{},trade_status:{},参数:{}",params.get("sign"),params.get("trade_status"),params.toString());
如果觉得本博客还不错的话,欢迎进群一起讨论:点我进群
下面是request的主要属性:
setAttribute(String name,Object):设置名字为name的request 的参数值
getAttribute(String name):返回由name指定的属性值
getAttributeNames():返回request 对象所有属性的名字集合,结果是一个枚举的实例
getCookies():返回客户端的所有 Cookie 对象,结果是一个Cookie 数组
getCharacterEncoding() :返回请求中的字符编码方式
getContentLength() :返回请求的 Body的长度
getHeader(String name) :获得HTTP协议定义的文件头信息
getHeaders(String name) :返回指定名字的request Header 的所有值,结果是一个枚举的实例
getHeaderNames() :返回所以request Header 的名字,结果是一个枚举的实例
getInputStream() :返回请求的输入流,用于获得请求中的数据
getMethod() :获得客户端向服务器端传送数据的方法
getParameter(String name) :获得客户端传送给服务器端的有 name指定的参数值
getParameterNames() :获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实
例
getParameterValues(String name):获得有name指定的参数的所有值
getProtocol():获取客户端向服务器端传送数据所依据的协议名称
getQueryString() :获得查询字符串
getRequestURI() :获取发出请求字符串的客户端地址
getRemoteAddr():获取客户端的 IP 地址
getRemoteHost() :获取客户端的名字
getSession([Boolean create]) :返回和请求相关 Session
getServerName() :获取服务器的名字
getServletPath():获取客户端所请求的脚本文件的路径
getServerPort():获取服务器的端口号
removeAttribute(String name):删除请求中的一个属性
request获取数据的几种方法的更多相关文章
- 前端向后端获取数据的三种方法:ajax、axios、fetch
1.jQuery中的ajax get方法: $.ajax({ url:"v4/api/film/now-playing?t=1539401039415&page=1&coun ...
- PHP获取POST数据的几种方法汇总
一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname']; 说明:只能接收Content-Type: application/x-www-form-urle ...
- php获取数组中重复数据的两种方法
分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...
- 体温数据上传程序开发+获取时间的三种方法+DB Browser下载及安装
今天开始了体温上传程序的开发 今日所学: 获取时间 (21条消息) (转)安卓获取时间的三种方法_sharpeha的博客-CSDN博客_安卓获取时间 DB Browser安装教程 (20条消息) sq ...
- Struts2(四.注册时检查用户名是否存在及Action获取数据的三种方式)
一.功能 1.用户注册页面 <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- C#获取当前路径的7种方法
总结C#获取当前路径的7种方法 C#获取当前路径的方法如下: 1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName ...
- Java获取随机数的几种方法
Java获取随机数的几种方法 .使用org.apache.commons.lang.RandomStringUtils.randomAlphanumeric()取数字字母随机10位; //取得一个3位 ...
- PHP获取POST的几种方法
一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname'];说明:只能接收Content-Type: application/x-www-form-urlen ...
- react在router中传递数据的2种方法
概述 不传递数据叫什么单页面应用,渲染模块还需要http请求算什么单页面应用. 本文总结了react-router4中使用BrowserRouter时传递数据的两种方法,供以后开发参考,相信对其他人也 ...
随机推荐
- jupyter的使用
shift+enter 运行程序 Tab 代码补全 shift+Tab 查看函数说明 shift+Tab+Tab 查看函数详细说明 https://www.dataquest.io/blog/jupy ...
- tableView镶嵌加入CollectionView实现方法
创建一个继承UICollectionView的类QHCollectionView在QHCollectionView.h中添加接口方法 @interface QHCollectionView : UIC ...
- 洛谷 [P2051] 中国象棋
DP orz__stdcall 首先要想出来,每行最多只能放两个棋子,这是显然的 于是决策就是一行一行地处理 30分的做法就是裸的枚举,暴搜,枚举这一行放哪里,放几个 然后想到了压位dp,按3进制表示 ...
- C#设计模式视频教程(不知道讲的好不好,刚刚看到)
原文发布时间为:2008-12-08 -- 来源于本人的百度文章 [由搬家工具导入] http://u.youku.com/user_video/uid_happyboy27.html 优酷网。。
- CC2540介绍
1. 介绍 CC2540是一款2.4GHz Bluetooth® low energy SOC,基于8051 MCU 首先,你需要硬件设备 笔者的开发板为CC2540DK 得到开发板的同时应该还有TI ...
- win7 64位数据库连接问题:在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
通过ODBC/JDBC连接程序和数据库时,异常报错“在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配”的解决办法 本机:64位win7,64位JDK,做Web实验用32位myeclipse ...
- c# 扩展LINQ的order by函数支持通过字符串来指定列名并支持多列
本文借鉴了https://blog.csdn.net/lan_liang/article/details/68523451. 将字符串转换为orderby的linq可以极大地减少重复劳动,可是该怎样将 ...
- 牛客网 牛客小白月赛2 H.武-最短路(Dijkstra)
H.武 链接:https://www.nowcoder.com/acm/contest/86/H 这个题写的有点想发脾气,自己的板子垃圾了,这个题要用优先队列优化版的迪杰斯特拉的板子才可以过,但是自己 ...
- 牛客网 牛客小白月赛1 I.あなたの蛙が帰っています-卡特兰数,组合数阶乘逆元快速幂
I.あなたの蛙が帰っています 链接:https://www.nowcoder.com/acm/contest/85/I来源:牛客网 这个题有点意思,是卡特兰数,自行百度就可以.卡特兰数用处 ...
- (22)python PhantomJS
下载地址 https://bitbucket.org/ariya/phantomjs/downloads/ 安装 解压后把bin目录下的phantomjs.exe文件复制到C:\Python27\Sc ...