Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaServletAPI继续发送100_Java_Http_Servlets_Http Status Code 100 - Fatal编程技术网

使用JavaServletAPI继续发送100

使用JavaServletAPI继续发送100,java,http,servlets,http-status-code-100,Java,Http,Servlets,Http Status Code 100,是否可以发送“100 Continue”HTTP状态代码,然后在使用JavaServletAPI(HttpServletResponse)处理整个请求后发送其他状态代码 我找不到任何明确的“否”答案,尽管API似乎不支持它。你是说状态代码100吗 不支持发送SC_CONTINUE 我猜你的意思是“100继续” 答案是:不,你不能(至少不是它的意图,因为)。一般来说,当请求需要时,servlet引擎会自动执行。当然,这使得servlet不可能阻止发送100状态——这个问题在servlet API中

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

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

你是说状态代码100吗

不支持发送SC_CONTINUE

我猜你的意思是“100继续”


答案是:不,你不能(至少不是它的意图,因为)。一般来说,当请求需要时,servlet引擎会自动执行。当然,这使得servlet不可能阻止发送100状态——这个问题在servlet API中是一个已知的问题,并且已经被认为是很久以前的问题了。

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

你用的是什么服务器

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


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

我知道,在它发送100之前。我想这就是你想要的行为。我不知道Tomcat做什么。

当您向客户端发送100 Continue时,您告诉客户端它可以继续发送请求正文。在处理请求正文之后,您需要发送另一个状态,以指示处理过程中发生了什么。这基本上意味着你要为一个请求发送两个状态。有关详细信息,请参阅我了解状态代码100的用途(事实上,我是第一个发布101更正的人)。如果你不能按预期使用API,API允许你发送它,这看起来很奇怪。谢谢你的回答,朱利安。我想将它与Apache Jackrabbit Webdav库结合使用,以防止Windows mini redir客户端发送无法处理的大量PUT请求(因为缺少授权头)。虽然我看到请求中没有“Expect:100 continue”头,但我还是想试试。。。但是我不知道如何使用servlet来编写代码:-(我修正了我的问题,谈论的是“100继续”,而不是101;-)现在我知道为什么我在google上找“101继续servlet”时没有找到任何东西。“你的意思是问我如何在请求完成之前发送状态码吗?”——是的,这正是我的观点。我猜API设计者不想只为一个状态代码增加更多的复杂性,所以我们可以发送它,尽管不是有意的。我们在Apache HTTP服务器后面使用Tomcat 5.5(充当反向代理)。谢谢你的建议,我会检查一下。在规范的范围内,这看起来是个不错的方法。很高兴知道这件事。谢谢