我对servlet进行了以下ajax调用。
$.ajax({
type: "post",
url: registersubmit.RegisterServlet.json,
dataType: "json",
data:$('#registrationForm').serialize(),
success: function(msg) {
// alert(msg.data);
alert('success'+msg.message2);
},
error: function (xhr, ajaxOptions, thrownError){
alert('HAI');
alert('BYE');
}
});
我是否知道如何使用servlet中的json对象
谢谢, 巴拉吉。
答案 0 :(得分:1)
您可以使用GSON library可用于转换JSON表示的Java库 到Java对象,反之亦然
答案 1 :(得分:1)
这里有一个巨大的误解。您发送ajax请求的方式根本不会在服务器端的JSON对象中结束。所有数据都以request.getParameter()
通常的方式提供。 $.serialize()
只是将表单的所有输入值收集到一个JSON对象中,而JSON对象又是以$.ajax
编码为HTTP查询字符串的常规方式。 JSON对象只是一种中间格式,允许您使用$.ajax
轻松提交整个表单。
所以,
的数据<form id="registrationForm" ...>
<input name="foo" ... />
<input name="bar" ... />
<input name="baz" ... />
</form>
可以在servlet中完全以与同步(常规)提交相同的方式进行冲突
String foo = request.getParameter("foo");
String bar = request.getParameter("bar");
String baz = request.getParameter("baz");
// ...
请注意,dataType
选项会指示jQuery $.ajax()
应该处理响应的数据类型。它与请求发送数据的方式完全没有关系。它只是作为HTTP请求参数发送通常的方式。另请参阅$.ajax()
documentation。