获取get请求中的参数

it2022-05-05  155

需要获取get请求中的参数,将参数一一保存到数据库

方法一(只适合参数较少的情况):

使用 String a = request.getParameter(“参数名”);不适合参数较多的情况,因为参数太多,然后分别接收,代码显得臃肿,因此在网上寻找有没有简单的方法,最终才发现了方法二

方法二

使用request.getParameterMap()把请求参数封装到Map<String, String[]>中,然后再使用BeanUtils.populate(bean,map)方法,该方法会遍历map<key,value>中的key,如果bean中有这个属性,就把这个key对应的value值赋给bean的属性。所以使用方法二, 注意 :需要请求参数名和实体类中的字段名一样 详细代码如下:

//添加轮胎温度 接口实现 public Map Insert(HttpServletRequest request) throws IOException, IllegalAccessException, InvocationTargetException{ //方法一 单独取值 //String tirenum1 = request.getParameter("tire_num1"); //方法二 使用 getParameterMap() 返回 Map<String, Object>,再使用BeanUtils.populate(bean,map) //参数名需要和bean类字段名一样 Map<String, String[]> properties = request.getParameterMap();//把请求参数封装到Map<String, String[]>中 Map<String, Object> returnMap = new HashMap<String, Object>(); Iterator<Entry<String, String[]>> iter = properties.entrySet().iterator(); String name = ""; String value = ""; while (iter.hasNext()) { Entry<String, String[]> entry = iter.next(); name = entry.getKey(); Object valueObj = entry.getValue(); if (null == valueObj) { value = ""; } else if (valueObj instanceof String[]) { String[] values = (String[]) valueObj; for (int i = 0; i < values.length; i++) { //用于请求参数中有多个相同名称 value = values[i] + ","; } value = value.substring(0, value.length() - 1); } else { value = valueObj.toString();//用于请求参数中请求参数名唯一 } returnMap.put(name, value); } TireTemp t = new TireTemp(); //遍历map<key,value>中的key,如果bean中有这个属性,就把这个key对应的value值赋给bean的属性。 BeanUtils.populate(t, returnMap); System.out.println("getTire_num1:"+t.getTire_num1()); try { ReturnCarInfo.count = ts.InsertTireTemp(t);//执行添加方法 } catch (Exception e) { System.out.println("添加数据失败,发生异常:"+e); } Map m=new HashMap(); if(ReturnCarInfo.count == 0) { m.put("msg", ReturnCarInfo.MSG_ERROR); m.put("code", ReturnCarInfo.CODE_ERROR); return m; }else { m.put("msg", ReturnCarInfo.MSG_SUCCESS); m.put("code",ReturnCarInfo.CODE_SUCCESS); m.put("data", ReturnCarInfo.count); return m; } }

初学java的小白,有什么不对的地方,欢迎批评指正,谢谢。 转自 地址.


最新回复(0)