我是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容器。
答案 0 :(得分:1)
如果您使用的是Java Servlet,则需要构建一个自定义HttpServlet,它必须实现函数doGet(HttpServletRequest req, HttpServletResponse resp)
和doPost(HttpRequest req, HttpResponse resp)
。将特定域名(示例中为contextpath/FirstServlet
)映射到自定义servlet类(在web.xml文件中)后,servlet将自动将任何get
或post
个请求路由到你的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
});