gpt4 book ai didi

java - 如何从 HttpServlet 关闭 HTTP 连接

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:54:35 25 4
gpt4 key购买 nike

我在 Tomcat 6.0.26 中运行一个 servlet。 servlet 通过 HTTP POST 接受来自客户端的文件上传。我想停止从 HttpServlet 端上传文件。我尝试了以下方法但没有成功:

  1. 关闭请求输入流
  2. 发送错误代码 HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE 并刷新响应
  3. 在过滤器中执行 1 和 2

我用谷歌搜索但没有找到直接答案。请告知解决方案。

谢谢。

最佳答案

使用标准 Servlet 或 Commons FileUpload API 是不可能的。基本上,为了能够立即中止连接,您应该物理地捕获底层套接字并关闭它。但是,此套接字由网络服务器控制。另请参阅此相关问题:How to explicitly terminate http connection from server with no response header .

然而,一些小测试证实,当文件大小超过限制时,Commons FileUpload 不会将整个文件缓冲到内存中。它将读取输入流,但只是忽略并丢弃读取的字节(也包括已经读取的字节)。所以内存效率不一定是这里的问题。

要解决真正的问题,您基本上希望在客户端而不是服务器端验证文件大小。这可以通过 Java Applet 或 Flash 应用程序实现。比如分别JumpLoaderSWFUpload .

关于java - 如何从 HttpServlet 关闭 HTTP 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3107631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com