首先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()的类型转换和数据获取的更多相关文章

  1. <<< request.getParameterMap()方法

    request.getParameterMap()方法返回的值,是一个Map类型的,记录着所提交的请求中请求参数和请求参数值的映射关系. 当不知道前台传过来的是什么,且不知道传过来的对象时,可用这个, ...

  2. request.getParameterMap()使用方法

    我习惯于加密完 重定向 : Map<String,String[]> getMap = request.getParameterMap(); String[] a = getMap.get ...

  3. 将request.getParameterMap()转换成可操作的普通Map

    在java web项目中虽然可以通过request.getParameterMap()很轻松的获得参数Map,但得到的Map和普通Map是不一样的,是被锁定的,不能像操作常规Map那样进行put.ge ...

  4. request.getParameterMap();

    Map<String, String[]> map = request.getParameterMap(); for(Map.Entry<String,String[]> e: ...

  5. request.getParameterMap()获得Map中的数据

    今天使用request.getParameterMap()获得Map中的数据时,使用        Map map=request.getParameterMap();               i ...

  6. JAVA中request.getParameterMap()用法笔记

    一. 根据Java规范:request.getParameterMap()返回的是一个Map类型的值,该返回值记录着前端(如jsp页面)所提交请求中的请求参数和请求参数值的映射关系.这个返回值有个特别 ...

  7. request.getParameterMap和request.getParameter不一样的显示

    public class KeywordUtil {    /**     * 只提q参数关键字     *     * @param request     * @return 处理后的关键字Str ...

  8. request.getParameterMap() 获取表单提交的键值对 并且 也能获取动态表单的key

    Map<String,String[]> map = request.getParameterMap();Set<String> keys = map.keySet(); 获取 ...

  9. java遍历request.getParameterMap()中的值

    在开发过程中发现request对象有提供一个request.getParameterMap()方法可以获取到从前端请求发送的参数Map. 但是在使用get()方法通过key(键)去获取这个参数Map中 ...

随机推荐

  1. ASP.NET空网页生成默认代码注释

    当在Visual Studio下生成ASP.NET空网页时,默认生成代码: <%@ Page Language="C#" AutoEventWireup="true ...

  2. 【转】浅思OC的语言特性

    算了算,学习IOS已经有一段时间了.今天花了点时间思考一下OC的语言特性,让自己的心不要那么浮躁,注重基础,回归本源. OC做为一门面向对象语言,自然具有面向对象的语言特性,如封装.继承.多态.他具有 ...

  3. mysqldump-info

    其实很多东西都能在info里面找到非常详细的说明,只是,我们太忙了,只想要一个答案,而无心去看而已,所以呢,就把用得到的都看一下来记录吧. 命令模式:mysqldump [options] [db_n ...

  4. bootstrap-16

    进度条----基本样式: Bootstrap框架中对于进度条提供了一个基本的样式,一个100%宽度的背景色,然后高亮颜色表示完成进度.其实制作这样的进度条非常容易,一般是使用两个容器,外容器具有一定的 ...

  5. bzoj 3531 旅行

    动态开点线段树+树链剖分  对于每一种宗教信仰都开一颗线段树 空间: QlogN 即每一次修改都只会改变logN 个点 时间 O(QlogN)  naive题  边没有开两倍  QAQ bzoj 35 ...

  6. CentOS7 安装 net-speeder 提升 VPS 网络性能

    参考:http://blog.csdn.net/u010027419/article/details/46129639 1.安装依赖库 先安装epel源 rpm -Uvh http://dl.fedo ...

  7. canvas 画字

    用canvas画字还是头一回,要想和UI设计的画的一模一样还是真有些苦难,不过现在实现的效果已经很像了. <!--通过字体文件引入字体--><style>@font-face ...

  8. org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection 原因

    org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection 可能出现的原因     ...

  9. 学习笔记-Java编程思想

    2016-01-03 Swith(整数选择因子):必须是int或char这样的整数值. Java中不包含goto语句,但是可以通过标识符实现类似的控制.

  10. 自动化测试工具QTP的使用实例 分类: 软件测试 2015-06-17 00:23 185人阅读 评论(0) 收藏

    1. QTP简介 1.1QTP功能与特点 QTP是QuickTest Professional的简称,是一种自动化软件测试工具.在软件的测试过程中,QTP主要来用来通过已有的测试脚本执行重复的手动测试 ...