【发布时间】:2015-12-22 04:53:37
【问题描述】:
我实现了一个 servlet,它接收 JSON 字符串,将其转换为对象并将其数据插入数据库。我使用 AJAX 从 HTML 页面调用该 servlet 并将 JSON 字符串发布到它。就我而言,servlet 向响应中写入任何内容是否有意义?
【问题讨论】:
-
为您的工作返回成功或失败的字眼
我实现了一个 servlet,它接收 JSON 字符串,将其转换为对象并将其数据插入数据库。我使用 AJAX 从 HTML 页面调用该 servlet 并将 JSON 字符串发布到它。就我而言,servlet 向响应中写入任何内容是否有意义?
【问题讨论】:
由于您提到您对 servlet 进行了 ajax 调用,您可能应该将 JSON 状态返回给调用 .ajax()
response.setContentType("application/json");
// Get the printwriter object from response to write the required json object to the output stream
PrintWriter out = response.getWriter();
// Assuming your database operation insert is successful
JSONObject json = new JSONObject();
// put a success message into the JSON object .
json.put("status", "success");
out.print(jsonObject);
out.flush();
在客户端
success: function(data) {
if(data.status == 'success'){
alert("Thank you for subscribing!");
}else if(data.status == 'error'){
alert("Error on query!");
}
}
【讨论】:
您无需返回任何东西。请求周期完成后,您的浏览器会以流的形式接收它的响应对象。如果你想给它加点东西。
response.getWriter().write(somedata);
您将在 AJAX 回调中收到 somedata。
【讨论】:
10,true,false 等,甚至是 json 格式的对象列表。
最好在 try catch 块内执行数据库事务,并向客户端返回成功/失败状态标志,以防事务因任何原因失败。
【讨论】: