1

我是 ajax 和 js 的新手。

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

我让 servlet 启动并使用 post 方法运行,因为它接收到 ajax 调用。

假设 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 容器。

4

1 回答 1

1

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

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

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

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

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

这是一个简单的示例 servlet

于 2012-08-02T23:39:51.457 回答