正确的语法没有“返回任何东西”的servlet?

时间:2009-05-22 09:55:37

标签: java ajax servlets

终止不向客户端返回任何数据的servlet的正确方法是什么?

有问题的servlet的目的是从Ajax请求中恢复一些数据并将TCP消息发送到一块硬件,告诉它改变它的状态。

您是否必须指定回复?

我选择获取对输出流的引用并关闭它,这是正确的吗?

我应该发回“嘿那工作”的消息吗?

4 个答案:

答案 0 :(得分:6)

如果您只想提供“成功”状态,只需返回HTTP代码200.您不必返回任何流,因为您只想说“确定”。

public void doGet(...) {
    response.setStatus(HttpServletResponse.SC_OK); 
}

答案 1 :(得分:3)

我觉得回复很好,如果你看一下像gmail这样的东西,你会注意到很多帖子会得到

ok

作为回应,我喜欢这个。它简单而简洁。

要考虑的另一件事是你将如何处理你的请求以某种方式失败的情况,我认为如果用户不成功,你的客户应该向用户报告一些事情,因此它需要来自servlet。

答案 2 :(得分:2)

你的servlet将发送带有状态代码的响应头,无论如何,我不明白为什么你应该输出任何东西。 :)

答案 3 :(得分:2)

在这些情况下,我通常会返回一条成功消息,例如(在JSON中)

{ success: true }

我发现它有时会有助于调试!我不认为有一个'正确'的响应,只要你的servlet返回200响应代码(除非你另有说明,我认为他们会这样做)然后没有问题。