不“返回任何内容”的 servlet 的正确语法?

问题描述 投票:0回答:5

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

所讨论的 servlet 的目的是从 Ajax 请求接收一些数据并向硬件发送一条 TCP 消息以告诉它更改其状态。

您是否必须指定回应?

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

我应该发回一条“嘿,成功了”的消息吗?

java ajax servlets
5个回答
8
投票

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

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

3
投票

我认为回复很好,如果你看 gmail 之类的东西,你会注意到很多帖子得到

ok

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

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


2
投票

无论如何,您的 servlet 将发送带有状态代码之类的响应标头,我不明白为什么您应该在此之上输出任何内容。 :)


2
投票

在这些情况下,我通常会返回一条成功消息,即类似(JSON 格式)的内容

{ success: true }

我发现它有时有助于调试!不过,我认为没有“正确”的响应,只要您的 servlet 返回 200 响应代码(我认为它们会这样做,除非您另有指定),那么就没有问题。


0
投票

在代码中的某些地方,您可以获得 HttpServletResponse 并关闭 Writer! ,检查您的代码并找到它在哪里! 如果您使用 HttpServletResponse.getWriter 并关闭它或使用尝试资源,则可以在没有任何错误的情况下发生!

© www.soinside.com 2019 - 2024. All rights reserved.