今天学习了一个获取提交表单数据的新方法request.getParameterMap。
在此之前,获取表单数据时总是用request.getParameter(“name”),根据表单中的name值获取value值,需要获取几项就得重复写几次getParameter,而request.getParameterMap方法则不同,不需要参数返回结果为Map<String,String[]> 将提交的form表单中的所有的项以id为key值,以value组成的String数组类型为value。
实例展示:
html页面
<input type="text" id="txt" name="txt"/> <input type="hidden" id="hid" name="hid" /> <textarea name="textarea" cols="20" rows="5" style="width: 60%"/>
Servlet界面
Map<String,String[]> getMap = request.getParameterMap(); System.out.println(getMap);
getMap的内容为:
{txt=[Ljava.lang.String;@27ce06dc, hid=[Ljava.lang.String;@7bbbca39, textarea=[Ljava.lang.String;@7ea06d70}
其实,request.getParameterMap()方法也是通过前台表单中的name值进行获取的,获取到后又进行了一次封装。 之所以返回的map中的key为字符串类型的数组,是为了解决表单中有多个name值一样的项。
记得当初为了简化重复写request.getParameter,还专门自定义了一个函数,用来将获取的表单想转化为一个map对象,当时还觉得通过转换已经相当简单了,可如今就在想当时怎么就不再方法后面加上个map字段呢? 所以,以后再工作中,遇到问题时,首先不是自己去写解决方法,而是去找有没有现成的方法。
request获取表单
时间: 2024-10-05 17:36:38