后台获取POST方式提交的JSON格式数据
1、直接使用request.getParamater()的方法获取(这种取参方式对于POST和GET的提交方式均适用);
2、通过请求体的IO流获取参数(这种方式只能用于POST,因为GET方式没有请求体);
String s =""; InputStream in = null; BufferedInputStream bin = null; try{ in = request.getInputStream(); bin = new BufferedInputStream(in); int len = 0; byte[] b = new byte[1024]; while( (len = bin.read(b)) != -1){ s += new String(b,0,len); } } catch (IOException e) { e.printStackTrace(); }finally{ try{ bin.close(); }catch (IOException e) { e.printStackTrace(); } try{ in.close(); }catch (IOException e) { e.printStackTrace(); } }
//最后根据取到的字符串适用JSONUtil工具将其转换成相应的对象(根据JSON工具类进行调整)
类名称 对象名 = JSONUtil.jsonToobj(s , "类名称.clsss");
流的另一种处理方式:
InputStream in = req.getInputStream(); BufferedReader bin = new BufferedReader(new InputStreamReader(in, "utf-8")); String line = null; StringBuffer content = new StringBuffer(); while ((line = bin.readLine()) != null) { content.append(line); }