发送100继续使用Java Servlet API

时间:2009-05-11 14:26:29

标签: java http servlets http-status-code-100

使用Java Servlet API(HttpServletResponse)处理整个请求后,是否可以发送“100 Continue”HTTP状态代码,然后再发送一些其他状态代码?

我找不到任何明确的“否”答案,尽管API似乎不支持它。

4 个答案:

答案 0 :(得分:6)

我认为你的意思是“100继续”。

答案是:不,你不能(至少不是它的意图,如provisional response)。通常,servlet引擎会在请求需要时自动执行。当然,这使得servlet无法阻止发送100状态 - 这个问题是Servlet API中的一个已知问题,并且已经知道现在感觉像是eons。

答案 1 :(得分:4)

我知道Jetty will wait until getReader() or getInputStream() is called在它发送100之前。我认为这是你正在寻找的行为。我不知道Tomcat做了什么。

答案 2 :(得分:2)

您是否要求如何在收到完整请求之前发送状态代码,以便因缺少标题字段而中断正在进行的请求?似乎用标准servlet是不可能的。

您使用的服务器是什么?

某些服务器的servlet扩展可能允许这样做,例如一旦标头可供处理,Tomcat's Comet servlet可能会发送EventType.BEGIN,这可能允许您中断没有正确身份验证的PUT。

或者,您的服务器可能有一个插件可以根据标头拒绝请求。

答案 3 :(得分:-1)

您的意思是状态代码 100

API支持发送SC_CONTINUE。