request获取表单

今天学习了一个获取提交表单数据的新方法request.getParameterMap。

  在此之前,获取表单数据时总是用request.getParameter(“name”),根据表单中的name值获取value值,需要获取几项就得重复写几次getParameter,而request.getParameterMap方法则不同,不需要参数返回结果为Map<String,String[]>     将提交的form表单中的所有的项以id为key值,以value组成的String数组类型为value。


实例展示:

html页面

[html]  view plain copy print ?
  1. <input type="text" id="txt" name="txt"/>  
  2. <input type="hidden" id="hid" name="hid" />  
  3. <textarea name="textarea" cols="20" rows="5" style="width: 60%"/>  

Servlet界面

[java]  view plain copy print ?
  1. Map<String,String[]> getMap = request.getParameterMap();  
  2. System.out.println(getMap);  

getMap的内容为:

[objc]  view plain copy print ?
  1. {txt=[Ljava.lang.String;@27ce06dc,  
  2. hid=[Ljava.lang.String;@7bbbca39,   
  3. textarea=[Ljava.lang.String;@7ea06d70}  

 其实,request.getParameterMap()方法也是通过前台表单中的name值进行获取的,获取到后又进行了一次封装。 之所以返回的map中的key为字符串类型的数组,是为了解决表单中有多个name值一样的项。

 记得当初为了简化重复写request.getParameter,还专门自定义了一个函数,用来将获取的表单想转化为一个map对象,当时还觉得通过转换已经相当简单了,可如今就在想当时怎么就不再方法后面加上个map字段呢? 所以,以后再工作中,遇到问题时,首先不是自己去写解决方法,而是去找有没有现成的方法。


注:key应该是name而不是value;

多个相同name,怎么判断不同呢?

map中不存在键值重复啊。。所以就存储的形式是value值是数组

为什么request.getParameterMap返回的结果是json格式的字符串。
返回的结果不是{’name‘=[values],’name2‘=[values2]}的形式么,可以通过key获取数组形式的values

你可能感兴趣的:(request获取表单)