发送100继续使用Java Servlet API

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

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

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

答案是:不,你不能(至少不是它的预期方式,作为临时反应 )。 通常,servlet引擎会在请求需要时自动执行。 当然,这使得servlet无法阻止发送100状态 – 这个问题在Servlet API中是一个已知问题,并且已经知道现在感觉像是eons。

我知道Jetty会等到getReader()或getInputStream()在它发送100之前被调用 。我认为这是你正在寻找的行为。 我不知道Tomcat做了什么。

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

你用的是什么服务器?

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

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

你的意思是状态码100吗?

API支持发送SC_CONTINUE。