【POST】获取参数。

 

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

 

 

 

//参数名称为departmentId
int 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()无法获取的问题了。

 

--------------------------------------------------------------------------------------------------------------------------------------------------------

如果使用request对象获取post参数,最近新发现了一个简单的方式,即:

在使用ajax请求接口时,或者使用psoter或postman测试接口的时候,只需要将请求头里的content-type设置为application/x-www-form-urlencoded,request对象中就会有值,这样无论是通过request.getParameter还是通过@RequestParam都可以获取到post传递过来的值。

 

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值