Java 如果在文件传输过程中发生异常,如何告知浏览器从Jetty servlet下载失败?

Java 如果在文件传输过程中发生异常,如何告知浏览器从Jetty servlet下载失败?,java,download,jetty,Java,Download,Jetty,我有一个Jetty servlet,允许用户从我的内部文件存储下载文件。 在这个servlet中,我正在将小块文件写入通过 HttpServletResponse对象的getOutputStream()方法。写入此outputstream时可能会引发一些异常。 文件传输的逻辑相当复杂,因此,异常不仅会在连接超时或用户关闭时出现 问题是,当发生异常时,浏览器中不会向下载文件的用户显示错误消息。 看起来下载成功了,但实际上只下载了文件的第一部分 我想要的是将这样的下载标记为失败,这样浏览器就会告诉用

我有一个Jetty servlet,允许用户从我的内部文件存储下载文件。 在这个servlet中,我正在将小块文件写入通过 HttpServletResponse对象的getOutputStream()方法。写入此outputstream时可能会引发一些异常。 文件传输的逻辑相当复杂,因此,异常不仅会在连接超时或用户关闭时出现

问题是,当发生异常时,浏览器中不会向下载文件的用户显示错误消息。 看起来下载成功了,但实际上只下载了文件的第一部分

我想要的是将这样的下载标记为失败,这样浏览器就会告诉用户这一点

首先想到的是通过HttpServletResponse对象的sendError方法捕获此类异常并发送错误, 或发送重定向到错误页面。不幸的是,它不起作用,因为只有在提交响应之前才能调用sendError方法, 否则将抛出IllegalStateException。在响应outputstream的第一次块刷新之后,响应已经提交

因此,我的问题是,如果在提交响应后写入HttpServletResponse outputstream期间发生异常,如何告诉浏览器文件下载失败