request取参数值问题
2015-12-29 10:40
477 查看
对于request的取值根据请求方式不同(post,get)可以分两种
因为getQueryString()只能获取到get请求的参数所以post请求发过来的参数需要通过request.getParameterMap()来循环生成
然后根据key和value对字符串进行拼接
HttpServletRequest request = ServletActionContext.getRequest();
Map<String, String[]> params = request.getParameterMap();
String cs="";
if(request.getQueryString()!=null){//针对get请求
try {
cs=URLDecoder.decode(request.getQueryString(),"utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}else{
for (String key : params.keySet()) {//针对post请求
String[] values = params.get(key);
for (int i = 0; i < values.length; i++) {
String value = values[i];
cs += key + "=" + value + "&";
}
}
}
附上post和get请求的区别
因为getQueryString()只能获取到get请求的参数所以post请求发过来的参数需要通过request.getParameterMap()来循环生成
然后根据key和value对字符串进行拼接
HttpServletRequest request = ServletActionContext.getRequest();
Map<String, String[]> params = request.getParameterMap();
String cs="";
if(request.getQueryString()!=null){//针对get请求
try {
cs=URLDecoder.decode(request.getQueryString(),"utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}else{
for (String key : params.keySet()) {//针对post请求
String[] values = params.get(key);
for (int i = 0; i < values.length; i++) {
String value = values[i];
cs += key + "=" + value + "&";
}
}
}
附上post和get请求的区别
1. get是从服务器上获取数据,post是向服务器传送数据。 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。 3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。 4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。 5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。 建议: 1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式; 2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;
相关文章推荐
- UIPickerView常用属性和方法总结
- UITableviewCell使用以及自定义高度
- iOS UITextField 使用全解
- Build Your Own Images
- Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
- request用getQueryString()获取参数中文转码问题
- easy ui diglog 点击关闭,触发事件
- pcDuino无显示器刷机与使用
- bat实现检测fluent当前文件夹最新文件
- UIImage裁剪图片指定frame
- pcDuino 刷系统-LiveSuit
- pcDuino汉化方法
- iOS—UIScrollView简单介绍
- 在未来UI设计将短信化
- poj1947Rebuilding Roads【树型dp 01背包】
- <LeetCode OJ> Longest Increasing Subsequence【300】
- easyui datagrid checkbox初始化某几行disabled时,点击全选还是可以选择 解决办法
- js中的循环流程的控制return false,return true,break,continue
- LeetCode 063 Unique Paths II
- 项目在使用easyui时遇到的问题