将数据从js发送到servlet并获取响应

时间:2012-08-02 23:19:21

标签: javascript jquery ajax json jsp

我是ajax和js的新手。

我有一个简单的jsp页面,里面有html。我有一个附带的javascript文件,我已经定义了我的所有功能。我有一个这样的函数来发送一些json数据到servlet。 我需要帮助才能将servlet的响应检索回调用js文件。

我接收到ajax调用后,使用post方法启动并运行servlet。

假设js文件名是:First.js和servlet是FirstServlet.java

将js中的数据发送到servlet的Javascript部分:

    var fullpath="contextpath/FirstServlet";

    //Sending the tradedata using ajax to the FirstServlet
    $.ajax({
        dataType: 'json',
        url: fullpath,
        type: 'POST',
        data: {jsonText:jsonText}

  });

在servlet端我对数据进行了一些修改并构建了动态html servlet的输出将添加到字符串变量中。

 <div>
   <table>
     <tbody>
        <tr>
           <td>
            <input name="hi" value="hello" />
            </td>
           <td>
            <input name="bye" value="goodbye" />
            </td>
        </tr>
     </tbody>
   </table>
  </div>

我想将此标记返回到调用它的相同javascript文件 //需要此部分的解决方案。

结束目标: 然后我想将它附加到我在jsp文件上的div标签//我将使用jquery来添加它。这样我可以在不使用iframe的情况下刷新div容器。

1 个答案:

答案 0 :(得分:1)

如果您使用的是Java Servlet,则需要构建一个自定义HttpServlet,它必须实现函数doGet(HttpServletRequest req, HttpServletResponse resp)doPost(HttpRequest req, HttpResponse resp)。将特定域名(示例中为contextpath/FirstServlet)映射到自定义servlet类(在web.xml文件中)后,servlet将自动将任何getpost个请求路由到你的doGet或doPost功能。

然后,您可以使用HttpServletRequest(reference)可用的函数来处理收到的数据。然后,您将要发送回客户端的任何内容放回HttpServletResponse(请参阅下面的示例链接),并且servlet会自动将HttpServletResponse发送回客户端。

为了从客户端接收响应数据,您只需要添加一个回调函数(接受两个参数,请参阅参考here)作为您的ajax请求的最后一个参数,如下所示:

$.ajax({
    dataType: 'json',
    url: fullpath,
    type: 'POST',
    data: {jsonText:jsonText}

}, function(responseData, textStatus) {
    console.log(responseData);
    //do something with responseData
});

Here's a simple example servlet