我有以下ajax呼叫对servlet的调用。
$.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对象
谢谢balaji。
这里有一个巨大的误解。发送AJAX请求的方式根本不会进入服务器端的JSON对象。所有数据都可以通过request.getParameter()
提供通常的方式。$.serialize()
仅将表单的所有输入值收集到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()
文档。
另请参见:
- 与JSP/Servlet和Ajax的简单计算器
- AJAX程序在Java中形成用户名验证
- 如何使用servlet和ajax?
您可以使用gson库一个可用于转换JSON表示的Java库进入Java对象,反之亦然