如何在AJAX请求中通过的servlet中消耗JSON对象



我有以下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对象,反之亦然

最新更新