我是 ajax 新手,我正在进行 ajax 调用,它将命中 servlet
,它使用 out.println()
获取数据并将数据打印到 jsp 。它工作正常,但我觉得这不是好方法。这是我的编码,
Ajax 调用,
xmlHttpReq.open('GET', "RTMonitor?rtype=groups&groupname="+temp, true);
在 RTMonitor servlet 中,我有,
sql ="SELECT a.vehicleno,a.lat,a.lng,a.status,a.rdate,a.rtime from latlng a,vehicle_details b where a.vehicleno=b.vehicleno and b.clientid="+clientid +" and b.groupid in(select groupid from group_details where groupname='"+gname+"' and clientid='"+clientid+"')";
resultSet = statement.executeQuery(sql);
while(resultSet.next())
{
response.setContentType("text/html");
out.println("<tr>"+
"<td>"+" "+" "+resultSet.getString("vehicleno")+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+" "+"<br>"+"<br>"+"</td>"+);
//other <td>s
}
我认为这不是一个好办法。所以我考虑将响应返回为 JSON
目的。告诉我如何以 JSON 形式返回对象并在 <td>
中设置值。并告诉我 JSON 是一个好方法,或者还有其他方法请建议我。
最佳答案
对象到 JSON 的转换已在问题中得到解释:Converting Java Object to Json using Marshaller
其他事情:
- 您的 SQL 不安全!请参阅以下问题,其中解释了准备好的语句并附有示例:Difference between Statement and PreparedStatement
一般来说,除非您的目的是学习东西,否则您不应该自己编写低级 AJAX 代码。有许多跨浏览器功能的 Javascript 库可以以稳健的方式提供这些功能,例如 JQuery 。 JQuery 的 API 具有 getJSON,您无疑会发现它非常有用 ( API doc ):
var params = {myObjectId: 1337}; // just some parameters $.getJSON( "myUrl/myAjaxAction", params, function( data ) { /* this is the success handler*/ alert(data.myObject.name); // assuming that returned data (JSON) is: {myObject: {name: 'Hello World!'}} });
关于java - 还有什么更好的方法来发送响应并以表结构打印数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25419741/