使用Java Servlet API(HttpServletResponse)处理整个请求后,是否可以发送“100 Continue”HTTP状态代码,然后再发送一些其他状态代码?
我找不到任何明确的“否”答案,尽管API似乎不支持它。
答案 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。