发送100继续使用Java Servlet API

问题描述 投票:2回答:4

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

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

java http servlets http-status-code-100
4个回答
6
投票

我假设你的意思是“100继续”。

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


4
投票

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


2
投票

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

你用的是什么服务器?

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

或者,您的服务器可能有一个插件来拒绝基于标头的请求。


-1
投票

你的意思是状态码100吗?

API确实支持发送SC_CONTINUE。

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