读代码学java:request.getParameterNames
1 protected Map<String, String> initRequestParams(HttpServletRequest request) { 2 Map<String, String> paramMap = new HashMap<String, String>(); 3 if (request == null) { 4 return paramMap; 5 } 6 Enumeration<?> paramNames = request.getParameterNames(); 7 /* 8 Enumeration<?>代表可以传递任意类型,?是通配符即Object及其下的子类,也就是java的所有对象了。 9 10 request.getParameterNames()方法是将发送请求页面中form表单里所有具有name属性的表单对象获取(包括button).返回一个Enumeration类型的枚举. 11 12 通过Enumeration的hasMoreElements()方法遍历.再由nextElement()方法获得枚举的值.此时的值是form表单中所有控件的name属性的值. 13 14 最后通过request.getParameter()方法获取表单控件的value值. 15 */ 16 if (request != null && paramNames != null && paramNames.hasMoreElements()) { 17 while (paramNames.hasMoreElements()) { 18 String paramName = (String) paramNames.nextElement(); 19 String[] paramValues = request.getParameterValues(paramName); 20 /* 21 先获得变量mane再获得其值,对于getParameterName()其值是变量/对象的名称,getParameterValue()获得的是变量/对象的值。 22 request.getParameterValues("name")方法将获取所有form表单中name属性为"name"的值.该方法返回一个数组.遍历数组就可得到value值. 23 */ 24 if (paramValues.length == 1) { 25 paramMap.put(paramName, paramValues[0]); 26 } else { 27 paramMap.put(paramName, ArrayUtils.toString(paramValues)); 28 } 29 } 30 } 31 return paramMap; 32 } 33 /* 34 request.getParameterNames()的值是无序排列request.getParameterValues()是按照from表单的控件顺序排列. 35 */
与其后悔昨天的落寞,不如开启今日的努力。