POST获取参数。【POST】

来源:互联网 发布:unity3d shader教程 编辑:程序博客网 时间:2024/05/17 02:38

请求后台controller的时候经常需要传递参数过来。当请求方式为GET 的时候就可以很容易的获取到参数,通过request对象即可。


//参数名称为departmentIdint departmentId=request.getParameter("departmentId");</span>

当使用 GET 传输的时候就可以采用上述的方式获取,但是GET传输是将参数直接拼接在URL后面,通过地址栏传输,一些敏感的参数会直接暴漏同时GET传输对于参数的长度也有所限制,所以很多时候需要我们通过POST传输,而当利用上面的方法获取POST传输的参数就会发现我们获取到的都是null;所以,分享一下POST获取参数的方式。


可以通过HTTP协议将参数转换为JSONObject,然后获取POST传递的参数。


public class HTTPUtil {/* *将post请求的json字符串格式的参数转为JSONObject  */public static JSONObject httpProcess(HttpServletRequest request,HttpServletResponse response) throws IOException, JSONException{StringBuffer sb = new StringBuffer() ; InputStream is = request.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8")); String s = "" ; while((s=br.readLine())!=null){ sb.append(s) ; } if(sb.toString().length()<=0){return null;}else {return new JSONObject(sb.toString());}}
然后在获取参数的时候就可以直接调用该方法获取:

JSONObject js=HTTPUtil.httpProcess(request, response);if(js==null){out.print("no paramters");}String departmentId=js.optString("departmentId");String telphone=js.optString("telphone");

这样就可以解觉POST传输参数request.getParameter()无法获取的问题了。


0 0
原创粉丝点击