3

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

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

4

4 回答 4

6

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

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

于 2009-05-11T15:40:12.763 回答
4

我知道Jetty 会等到调用 getReader() 或 getInputStream()后再发送 100。我认为这是您正在寻找的行为。我不知道Tomcat是做什么的。

于 2010-09-15T20:14:18.153 回答
2

您的意思是问如何在收到完整请求之前发送状态代码,以因缺少标头字段而中断正在进行的请求?似乎这对于标准 servlet 是不可能的。

你用的是什么服务器?

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

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

于 2009-05-12T20:16:08.407 回答
-1

你的意思是状态码100吗?

API确实支持发送 SC_CONTINUE 。

于 2009-05-11T15:30:20.923 回答