使用Ajax和JSP将表单保存在XML文件中

时间:2010-04-19 11:42:35

标签: jquery xml ajax jsp

我想创建一个带有名称和电子邮件的简单表单,并将这些数据保存在XML文件中。到目前为止,我发现使用Ajax和jQuery非常容易。所以我使用了通常的代码:

//dataString have the values taken from the form
var dataString = 'name='+ name + '&email=' + email;
$.ajax({
 type: "POST",
 url: "users.xml",
 data: dataString,
 dataType: "xml",
 success: function() { .... }
});

如果我理解的话,在网址中我应该添加将要创建的XML文件的名称。

当用户单击一个按钮时,我使用Ajax请求调用该函数,然后我应该在某处调用一个函数来生成xml。

我也在使用两个豆子。一个用于设置用户的元素,另一个用于将数据保存在XML中。我正在使用xStream库作为xml,虽然我不知道是否是最好的解决方案。

现在的问题是我无法将所有这些连接在一起以便将数据保存在XML中。

有谁知道我该怎么做?

非常感谢!

1 个答案:

答案 0 :(得分:1)

很抱歉,但您的理解不正确。 url应指向处理HTTP POST请求的服务器端CGI / API的URL。 dataType表示在处理HTTP请求后从服务器端返回的HTTP响应的数据类型。这可以是HTML字符串,JSON字符串或XML字符串。为了便于立即处理响应,您可以在其中设置数据类型,以便jQuery知道如何“预格式化”响应。通常使用JSON,因为它是最简洁,最快速的Javascript处理。

对于JSP / Servlet应用程序,您需要让url指向一个实现doPost()方法的Servlet,如下所示:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // First process HTTP request.
    String name = request.getParameter("name");
    String email = request.getParameter("email");
    // Do your business stuff here. You want to store this in a xml file? 

    // Then return HTTP response.
    response.setContentType("text/xml");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write("<status>ok</status>"); // Or whatever XML string you would like to return depending on the outcome of the business stuff.
}