一、

根据Java规范:request.getParameterMap()返回的是一个Map类型的值,该返回值记录着前端(如jsp页面)所提交请求中的请求参数和请求参数值的映射关系。这个返回值有个特别之处——只能读。不像普通的Map类型数据一样可以修改。这是因为服务器为了实现一定的安全规范,所作的限制。比如WebLogic,Tomcat,Resin,JBoss等服务器均实现了此规范。

如果实在有必要在取得此值以后做修改的话,要新建一个map对象,将返回值复制到此新map对象中进行修改,用新的map对象代替使用之前的返回值。

[java] view plaincopy
  1. Map readOnlyMap = request.getParameterMap();
  2. Map writeAbleMap = new HashMap();
  3. writeAbleMap.putAll(readOnlyMap);
  4. writeAbleMap.remove()或者put()...
  5. 在后续的程序代码中使用writeAbleMap即可

二、

对request.getParameterMap()的返回值使用泛型时应该是Map<String,String[]>形式,因为有时像checkbox这样的组件会有一个name对应对个value的时候,所以该Map中键值对是<String-->String[]>的实现。

举例,在服务器端得到jsp页面提交的参数很容易,但通过request.getParameterMap()可以将request中的参数和值变成一个Map。

以下是将得到的参数和值打印出来,形成的map结构:Map(key,value[]),即:key是String型,value是String型数组。

例如:request中的参数t1=1&t1=2&t2=3形成的map结构:

key=t1;value[0]=1,value[1]=2

key=t2;value[0]=3

如果直接用map.get("t1"),得到的将是:Ljava.lang.String;   value只所以是数组形式,就是防止参数名有相同的情况。

[java] view plaincopy
  1. Map map = request.getParameterMap();
  2. java.util.Enumeration  enum=this.getRequest().getParameterNames();
  3. while(enum.hasMoreElements()){
  4. String  paramName=(String)enum.nextElement();
  5. String[]  values=request.getParameterValues(paramName);
  6. for(int  i=0;i<values.length;i++){
  7. System.out.println("["+i+"]   "+paramName+"  "+values[i]);
  8. }
  9. }

三、当传递的参数个数不固定且参数名没有重复的,取值的方法:

Map map = new HashMap();

//得到枚举类型的参数名称,参数名称若有重复的只能得到第一个

[java] view plaincopy
  1. Enumeration enum =this.getRequest().getParameterNames();
  2. while (enum.hasMoreElements()) {
  3. String paramName = (String) enum.nextElement();
  4. String paramValue = this.getRequest().getParameter(paramName);
  5. //形成键值对应的map
  6. map.put(paramName, paramValue);
  7. }

JAVA中request.getParameterMap()用法笔记相关推荐

  1. 关于JAVA中request.getParameterMap与request.getReader()获取不到请求值的解决方案

    最近比较忙,经常加班,已经有一个星期多的时间没写博客了,但是即便再忙,也要把自己认为重要的知识点通过博客的形式记录下来! 最近在维护公司的旧系统时发现公司的旧网关的异步通知定时任务出现延迟的问题,本来 ...

  2. java中的基本用法

    java中的基本用法 关键字:专门用途的字符串 所有java关键字都是小写英文 标识符 java常量 java变量 ■ 作用域:起作用的区域■ 使用前必须先声明,在赋值.使用变量名访问这块区域 jav ...

  3. Java中getResourceAsStream的用法

    Java中getResourceAsStream的用法 首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String p ...

  4. Java中getResourceAsStream的用法小结

    2019独角兽企业重金招聘Python工程师标准>>> Java中getResourceAsStream的用法小结 一.Java中的getResourceAsStream主要有以下三 ...

  5. java中substring的用法

    2019独角兽企业重金招聘Python工程师标准>>> java中substring的用法 str=str.substring(int beginIndex);截取掉str从首字母起 ...

  6. JAVA中Final的用法

    JAVA中Final的用法 1. 修饰基础数据成员的final 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改.如java.lang.Math类中的 ...

  7. php simpledateformat,Java中SimpleDateFormat的用法介绍(代码示例)

    本篇文章给大家带来的内容是关于Java中SimpleDateFormat的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.为什么要使用SimpleDateFo ...

  8. java中demo接人_return的用法_如何理解java中return的用法?

    C语言中return用法?(请熟练者进) return是返回值,这个返回值是和函数的类型有关的,函数的类型是什么,他的返回值就是什么 比方主函数intmain() {}这里就必须有一个return,只 ...

  9. java中native的用法

    java中native的用法前言:在查看 Thread.java 文件时,发现有一个 方法比较特殊 private native void start0();概念:native关键字说明其修饰的方法是 ...

最新文章

  1. factor--符号矩阵的因式分解
  2. 【第二版】RichFaces中使用datatable和datascroller进行分页(使用数据库分页,改良版)(含源码)(JSF 1.2,RichFaces 3.2.1GA)
  3. IO和属性配置文件之组合拳
  4. 开源项目推荐:CNC+CRC/SoftPLC/OpenCASCADE/CAD/CAM
  5. 微软加入字节码联盟,进一步开发支持Blazor 的WebAssembly技术
  6. tornado 简易教程
  7. navicat 的查询功能
  8. STM32的AFIO时钟什么时候开启?
  9. 【STM32】HAL库 STM32CubeMX教程十一---DMA (串口DMA发送接收)
  10. mysql设置最大查询时间_mysql如何限制sql查询时间
  11. element ui 点击修改开启停用按钮状态
  12. 为什么要使用Keil MDK-ARM中间件库?
  13. linux gnome3+ibus切换中文输入法
  14. 【大数据存储】Java操作jena练习
  15. 百度云推送-服务端 C# SDK
  16. 华清远见嵌入式培训_第六周回顾与反思
  17. JDBC学习笔记——Java语言与数据库的鹊桥
  18. 联想A800新蜂ROM刷机包 官方4.0.4优化 精简省电稳定 V1.2
  19. LeetCode:求全由1构成的最大正方形面积
  20. 用 ECharts 做出漂亮的数据统计图

热门文章

  1. tomcat远程调试_docker容器远程debug(Tomcat)
  2. 3d模型多怎么优化_3D打印人像模型是怎么制作出来的呢?
  3. java 内部类 返回值_Java学习笔记:形参和返回值、内部类、常用API
  4. mysql alter event_MYSQL ALTER EVENT介绍
  5. 数值运算python嵩天_python语法_算数运算+赋值运算符+比较运算符+逻辑运算符
  6. js显示PHP源代码命令,layedit富文本编辑器中如何添加显示源码功能(代码)
  7. spark算子_Spark 性能优化(四)——程序开发调优
  8. 四川南充计算机经贸学校,四川南充工贸学校计算机应用专业秋季计划
  9. c语言因为是汇编语言的一种,. C语言是一种(). A.机器语言B.汇编语言C.中级语言D.高...
  10. 华为主题包hwt下载_华为主题太丑?修改方式它来了