java web 服务器端处理json格式参数
前面我们说了传递参数的两种访书,第一是key-value形式,第二是json格式,
对于第一种我们在服务器端直接使用 request.getParameter("key");就能获取key对应的value。但是对于传递的json就不能使用这样的代码了,
利用json传递的参数存在request的body里,我们需要从里面输入流里面读取,下面是代码:
1 /** 2 * 获取请求的 body 3 * @param req 4 * @return 5 * @throws IOException 6 */ 7 public static String getRequestBody(HttpServletRequest req) throws IOException { 8 BufferedReader reader = req.getReader(); 9 String input = null; 10 StringBuffer requestBody = new StringBuffer(); 11 while((input = reader.readLine()) != null) { 12 requestBody.append(input); 13 } 14 return requestBody.toString(); 15 }
StringBuffer requestBody = new StringBuffer();这句要注意一下,有的会使用String来定义requestBody,这样会有一个坏处,
每次reader.readLine()不为空的时候,requestBody += input;就会新创建一个String对象,而StringBuffer是可以追加的