今天使用angularJS的$http服务时,打算将一个json对象传递给后端,在网上参照了一些文档
如果直接传递json对象的话,servlet使用request.getParameter(args)取出的值为空
在传递之前应该在前端使用JSON.stringify(data)的方法将json对象转化为字符串,
并且$http里的data应该使用对象进行传递
$http({
method : "POST",
url : "com/ljxt/servlet/RegisterService",
data : {ds : JSON.stringify(data)},
dataType : "json",
headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
transformRequest: function(data){
return $.param(data);
}
}).then(function(response) {
var result = response.data;
alert("注册" + (result > 0 ? "成功!" : "失败!"));
});
这样在就可以在后端通过request.getParameter(属性)的方式取出对应的字符串
备注:由于没有使用submit提交而是直接使用一般按钮,所以需要设置headers和transformRequest,这样servlet在接收时才能通过getParameter方法来接收
再通过gson,jackson等将字符串转化成json对象就可以使用了
String data = request.getParameter("ds");
Map<String, String[]> map = request.getParameterMap();
按照正常集合的用法就可以取出其中的值