用OutputStream下载大文件时,下载过程中,点取消下载后,websphere6.0会死掉
而tomcat不会,可以捕捉到异常!不过异常也是null!
不知道是不是websphere本身的Bug
下面是测试的Servelet
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DownServlet extends HttpServlet {
public DownServlet() {
super();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request,response);
}
public void processRequest(HttpServletRequest request,
HttpServletResponse response) throws IOException {
String path = request.getParameter("path");
File file = new File(path);
response.setContentType("application/x-msdownload");
response.setContentLength((int) file.length());
response.setHeader("Content-Disposition",
"attachment;filename=xxxf.cvs");
response.setHeader("windows-Target", "_blank");
BufferedInputStream input = new BufferedInputStream(new FileInputStream(file));
try {
byte buffBytes[] = new byte[1024];
int allLength = 0;
System.out.println("*********************"+path);
System.out.println("开始下载");
OutputStream out = response.getOutputStream();
System.out.println("获得流之前");
int read=0;
while ((read=input.read(buffBytes))!=-1) {
allLength += read;
out.write(buffBytes, 0, read);
}
System.out.println("获得流之后"+allLength);
out.flush();
out.close();
input.close();
System.out.println("正常关闭文件流");
} catch (IOException e) {
System.out.println("取消下载"+e.getMessage());
}
System.out.println("********************");
}
}
分享到:
相关推荐
在从Tomcat服务器下载文件时,如果文件是二进制格式,通常会选择使用字节流,例如FileInputStream和ServletOutputStream。 下载到SD卡的过程则涉及到Android系统的文件操作。在Android设备上,SD卡通常被用作外部...
根据提供的文档标题、描述、标签以及部分内容,本文将详细介绍如何使用Spring框架中的`RestTemplate`进行文件上传、普通文件下载及大文件的流式下载。 ### 一、文件上传 在进行文件上传时,通常涉及到以下几个步骤...
在Android平台上,文件下载和断点续传是移动应用开发中的常见需求,特别是在处理大文件时,用户可能因网络中断或其他原因需要暂停或重启下载。断点续传技术允许应用程序在下载过程中记住已下载的部分,当下载中断后...
在Android开发中,下载文件是一项常见的任务,尤其在构建应用时需要从服务器获取资源或更新数据。本"Android 下载文件Demo"旨在演示如何利用字节流进行文件下载操作。在Java和Android中,输入输出流(IO流)是处理...
1. 在实现JSP文件上传和下载时,需要注意文件上传的大小限制,避免上传大文件引发的服务器崩溃。 2. 在实现JSP文件上传和下载时,需要注意文件的安全性,避免恶意攻击和数据泄露。 3. 在实现JSP文件上传和下载时,...
使用 TransmitFile 可以避免使用 Response.BinaryWrite 下载大文件时可能出现的 Aspnet_wp.exe 进程回收问题。 在 ASP.NET 中,可以使用 Response 对象的 TransmitFile 方法来下载文件。下面是一个使用 ...
在Android平台上,实现文件下载(特别是大文件)和断点续传是一项常见的需求,这能够提高用户体验,因为用户不必从头开始重新下载由于网络中断而未完成的文件。同时,解压缩文件也是移动应用中常见的情景,比如安装...
2. 表单提交时,Struts2的拦截器会捕获这个请求,将文件内容封装到一个`FileItem`对象中。 3. 在对应的UploadAction中,我们需要解析`FileItem`对象,将文件保存到服务器指定的目录,这里指明为"upload"文件夹。在...
对于大文件的下载,传统的下载方式可能会因为网络中断或其他原因导致下载失败。支持断点续传的下载方式可以有效解决这一问题,它允许在下载中断后继续从上次停止的位置开始下载。 实现断点续传通常需要记录已下载的...
在Java和JSP中,实现文件下载是一项常见的任务,它涉及到服务器与客户端之间的交互,以及对文件流的处理。下面将详细讲解如何使用Java和JSP来实现这一功能。 首先,我们从`downloadtool.jsp`开始,这是一个用户界面...
下载文件时,我们需要创建一个File对象,指定本地存储的位置,通常是SD卡(外部存储)。Android提供了`Environment.getExternalStorageDirectory()`方法来获取SD卡根目录。然后,我们可以创建一个输出流...
在Android应用开发中,Service是一种重要的组件,它允许应用程序在后台执行长时间运行的操作,而无需与用户界面交互。本教程将深入探讨如何利用Service组件在Android设备上实现文件的后台下载,确保即使用户退出应用...
7. **性能优化**:为了提高性能,可以考虑使用异步操作,特别是在处理大量文件时。利用ASP.NET的async/await特性,可以避免阻塞线程池资源。 8. **错误处理**:添加适当的异常处理机制,当文件不存在或者读取过程中...
### Spring Boot中使用Java实现文件批量下载与压缩功能 #### 一、背景介绍 在Web应用开发中,经常需要提供给用户批量下载的功能,尤其是在文件管理或者文档分享等场景下。传统的做法是一次只下载一个文件,这不仅...
在IT行业中,多线程是提高程序性能和利用系统资源的有效手段,特别是在处理I/O密集型任务如文件下载时。C#作为一种强大的编程语言,提供了丰富的多线程支持,使得开发者能够轻松地创建并管理多个执行线程。本文将...
在传输文件时,我们通常会使用InputStream来读取文件,然后通过Servlet的OutputStream将数据发送到客户端。 2. **Servlet**: Servlet是Java Web开发的核心组件,用于处理HTTP请求并生成响应。在本例中,`...
3. **启动Tomcat**:完成上述步骤后,重启Tomcat服务器,此时Jsmartcom组件已准备就绪,可在`webapps/jspsmartupload`目录下的JSP文件中使用。 4. **全局部署**:如果你希望所有Web应用程序都能够使用Jsmartcom,...
在ASP.NET(C#)开发中,有时我们需要对网站上的文件下载功能进行控制,例如限制下载速度,隐藏文件的真实路径和名称,以保护服务器资源的安全。本示例将讲解如何实现这些功能,主要针对VS2005(.NET Framework 2.0)...
本文将详细介绍基于Java文件输入输出流实现文件上传下载功能的相关知识点,包括文件上传和下载的实现原理、Java文件输入输出流的基础操作、Servlet的使用等。 文件上传 文件上传是指客户端将文件传输到服务器端的...