关于request.getParameterMap()的类型转换和数据获取
首先po上一个自己写的转换类。
/**
* @author Xfiler
* @described 将request.getParameterMap()转换为普通的Map的工具方法
* @param request
* @return
*/
public Map<String, String> convertMap(HttpServletRequest request) {
Map<String, String> returnMap = new HashMap<>();
// 转换为Entry
Set<Map.Entry<String, String[]>> entries = request.getParameterMap().entrySet();
// 遍历
for (Map.Entry<String, String[]> entry : entries) {
String key = entry.getKey();
StringBuffer value = new StringBuffer("");
String[] val = entry.getValue();
if (null != val && val.length > 0) {
for (String v:val) {
value.append(v);
}
}
returnMap.put(key, value.toString());
} return returnMap;
}
然后我们要问为什么这样做了?
那还是先放上一个报错信息:
java.lang.ClassCastException: [Ljava.lang.String; cannot be cast to java.lang.String
at com.xfiler.servlet.MyServlet.doGet(MyServlet.java:53)
客户端表单数据传输到Servlet的doGet()方法类型转换错误.正确结束String[]不能转化为String
这个报错信息说明request.getParameterMap()返回的Map不是我们平常的Map<Object,Object>类型,而是Map<String,String[]>,从而需要将value值部分进行转换。
所以回到开始的代码可以看出,做了这部分的转换。
关于request.getParameterMap()的类型转换和数据获取的更多相关文章
- <<< request.getParameterMap()方法
request.getParameterMap()方法返回的值,是一个Map类型的,记录着所提交的请求中请求参数和请求参数值的映射关系. 当不知道前台传过来的是什么,且不知道传过来的对象时,可用这个, ...
- request.getParameterMap()使用方法
我习惯于加密完 重定向 : Map<String,String[]> getMap = request.getParameterMap(); String[] a = getMap.get ...
- 将request.getParameterMap()转换成可操作的普通Map
在java web项目中虽然可以通过request.getParameterMap()很轻松的获得参数Map,但得到的Map和普通Map是不一样的,是被锁定的,不能像操作常规Map那样进行put.ge ...
- request.getParameterMap();
Map<String, String[]> map = request.getParameterMap(); for(Map.Entry<String,String[]> e: ...
- request.getParameterMap()获得Map中的数据
今天使用request.getParameterMap()获得Map中的数据时,使用 Map map=request.getParameterMap(); i ...
- JAVA中request.getParameterMap()用法笔记
一. 根据Java规范:request.getParameterMap()返回的是一个Map类型的值,该返回值记录着前端(如jsp页面)所提交请求中的请求参数和请求参数值的映射关系.这个返回值有个特别 ...
- request.getParameterMap和request.getParameter不一样的显示
public class KeywordUtil { /** * 只提q参数关键字 * * @param request * @return 处理后的关键字Str ...
- request.getParameterMap() 获取表单提交的键值对 并且 也能获取动态表单的key
Map<String,String[]> map = request.getParameterMap();Set<String> keys = map.keySet(); 获取 ...
- java遍历request.getParameterMap()中的值
在开发过程中发现request对象有提供一个request.getParameterMap()方法可以获取到从前端请求发送的参数Map. 但是在使用get()方法通过key(键)去获取这个参数Map中 ...
随机推荐
- htop基本使用
一.什么是htop? top是所有类unix系统的必备工具,能直观方便的查看到系统负载.内存及进程等信息. 而htop具有top工具的全部功能且还新增了一些额外的功能和使用体验改进.与top相比,其具 ...
- 当C++多继承遇上类型转换[转]
1 由来 客户用陈旧的VC++6.0进行项目开发,有一块功能需要我来实现.让一个早就习惯了VS2013的人去使用C++支持不太好的VC6去做开发实在是非常不爽,于是另辟蹊径,打算使用VC++201 ...
- java并发编程学习笔记(一)初识并发原子性
1.并发的意义 现在是一个多核的时代,并发的存在意义就是为了能够充分利用多核计算机的优势,提高程序的运行效率: 2.并发的风险 竞争-----多个线程对内存数据数据进行读写操作时,对数据处理结果的一个 ...
- CSS3 实现3D旋转木马效果
基本原理: 1.首先我们需要让图片能旋转的效果,我们让所有图片绝对定位(position:absolute),共用一个中心点. 2.对于舞台我们加一个视距,比如下面的demo是 perspective ...
- iOS 线性滚动
在这里,给大家带来简单的滚动实现,首先看一下实现效果. 通过观察不难发现,有很多地方并不是那么容易想出来的,对于篇随笔,感兴趣可以查查相关资料,我就不尽行过多说明,(主要是开考文字,不好说明
- jquery操作input值总结
获取选中的值获取一组radio被选中项的值var item = $('input[@name=items][@checked]').val(); 获取select被选中项的文本var item = $ ...
- Deactivate .NET refector
8.5版本用注册机注册时手快成Standed版本,搞错......,能否Deactivated,发现要联网..... 接下来查找.net reflector 在位置%UserProfile%\AppD ...
- sql developer 要求输入jdk地址
困扰了好久 终于找到解决办法了. 将sql developer改为 兼容模式和管理员方式运行,选择java.exe的路径 终于可以在64位系统下顺利使用了.
- PHP使用字符串名称调用类的方法
<?php class Game { function Play($id) { echo "Playing game $id\n"; } } $game = new Game ...
- 技海拾贝 - Java
1. Java中的多线程 http://blog.csdn.net/luoweifu/article/details/46673975 Java中继承thread类与实现Runnable接口的区别 h ...