1、设置doc格式的文件弹出对话框:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<mime-mapping>
<extension>doc</extension>
<mime-type>application/vnd.ms-word</mime-type>
</mime-mapping>
<welcome-file-list>
<welcome-file>DownloadFile.jsp</welcome-file>
</welcome-file-list>
</web-app>
2、注意要主动释放out对象,否则会抛出错误:
<%@page language="java" contentType="application/x-msdownload"
import="java.io.*,java.net.*" pageEncoding="gb2312"%>
<%
response.reset();//可以加也可以不加
//设置为下载application/x-download
response.setContentType("application/x-download");
// /../../退WEB-INF/classes两级到应用的根目录下去,
//注意Tomcat与WebLogic下面这一句得到的路径不同,WebLogic中路径最后没有/
System.out.println(this.getClass().getClassLoader()
.getResource("/").getPath());
String filenamedownload = this.getClass().getClassLoader()
.getResource("/").getPath()
+ "/../../系统解决方案.doc";
String filenamedisplay = "系统解决方案.doc";//系统解决方案.txt
filenamedisplay = URLEncoder.encode(filenamedisplay, "UTF-8");
response.addHeader("Content-Disposition", "attachment;filename="
+ filenamedisplay);
OutputStream output = null;
FileInputStream fis = null;
try {
output = response.getOutputStream();
fis = new FileInputStream(filenamedownload);
byte[] b = new byte[1024];
int i = 0;
while ((i = fis.read(b)) > 0) {
output.write(b, 0, i);
}
output.flush();
} catch (Exception e) {
System.out.println("Error!");
e.printStackTrace();
} finally {
if (fis != null) {
fis.close();
fis = null;
}
if (output != null) {
output.close();
output = null;
}
//主动释放在jsp中使用的对象
out.clear();
out = pageContext.pushBody();
}
%>
运行结果:
/D:/tomcat6_Green/webapps/DownloadFile/WEB-INF/classes/
/D:/tomcat6_Green/webapps/DownloadFile/WEB-INF/classes/
参考:
1、tomcat5下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法
2、JSP文件下载及getOutputStream () has already been 的解决
分享到:
相关推荐
根据给定的信息,本文将详细解释如何使用JSP与SmartUpload插件来实现文件下载功能。这主要包括以下几个方面的内容:理解JSP与SmartUpload的基本概念、解析提供的代码示例、以及深入探讨SmartUpload中的关键方法。 #...
下面将详细介绍如何使用JSP来实现文件下载,并探讨相关的知识点。 首先,我们需要了解HTTP协议中的"Content-Disposition"和"Content-Type"头。当浏览器接收到服务器返回的文件时,这两个头信息告诉浏览器如何处理...
总的来说,实现JSP页面的文件下载功能需要以下几个步骤: 1. 在HTML中创建一个链接,指向处理下载的JSP页面。 2. 在JSP页面中,使用SmartUpload或其他类似的库来处理下载逻辑。 3. 设置正确的Content-Disposition以...
另一个Servlet或JSP页面,根据用户请求生成文件下载链接。 总的来说,这个项目展示了如何在Java和JSP环境中实现文件上传和下载功能,特别是在处理中文文件名时的注意事项。理解并实践这些技术对于任何Java Web...
在Java和JSP中,实现文件下载是一项常见的任务,它涉及到服务器与客户端之间的交互,以及对文件流的处理。下面将详细讲解如何使用Java和JSP来实现这一功能。 首先,我们从`downloadtool.jsp`开始,这是一个用户界面...
3. **断点续传**:虽然这个示例可能不涉及,但高级的文件下载功能可能包含断点续传,允许用户在中断后继续下载。 4. **安全性考虑**:下载文件时应确保只提供授权用户访问,避免直接暴露敏感路径。 在MyEclipse...
本话题关注的是如何在JSP页面上实现文件下载功能,这对于构建一个交互性强、功能丰富的Web应用是至关重要的。以下我们将详细探讨这个主题。 首先,我们需要理解JSP页面的基本结构和工作原理。JSP页面由HTML、CSS、...
通过上述步骤,我们可以在JSP中实现将服务器上生成的Excel文件下载到客户端的功能。这种方法不仅适用于Excel文件,还可以扩展到其他类型的文件下载。开发者可以根据具体需求调整代码细节,以满足不同的应用场景。
三、JSP文件下载的实现 在示例代码中,使用了自定义的UpFile.tag标签来处理文件下载。UpFile.tag标签将文件下载到客户端,使用Image标签来显示下载的文件。在UpFile.tag标签中,使用Java代码来处理文件下载,使用...
文件下载通常涉及生成HTTP响应,设置适当的响应头(如Content-Disposition,指示浏览器以附件形式下载文件,以及Content-Type指定文件类型),然后将文件内容写入响应流。在JSP中,可以通过Servlet或者使用JSP内置...
文件下载的实现则相对简单一些。JSP可以通过Servlet响应流将服务器上的文件内容发送到客户端,客户端浏览器则会自动触发下载操作。在Servlet中,我们需要设置适当的响应头信息,如Content-Type表示文件类型,Content...
本项目专注于使用JSP来实现文件的上传和下载功能,这对于Web应用程序来说是至关重要的,特别是那些需要处理用户数据交互的系统。 一、JSP上传文件 1. **表单设计**:在JSP页面中,我们需要创建一个HTML表单,包含`...
第一中使用二进制流的方式,这样被文件的文件可以是随意地址,二不必使用“/”开头的路径;...第二种使用RequestDispatcher下载文件,这中下载方式的局限是被下载文件的路径必须以“/”开头,即在项目的webRoot下
当我们需要通过Web应用程序提供文件下载服务时,JSP可以作为一个有效的工具。在这个场景中,"用JSP下载word文件(不会直接用IE打开.rar"的描述表明我们要实现一个功能,即用户点击链接后,JSP页面能够提供Word文件的...
jsp 实现 文件下载 jspsmartupload
在JSP中,我们通常通过Servlet来处理文件下载请求。当用户点击下载链接时,JSP页面会向服务器发送一个请求,服务器端的Servlet接收到请求后,读取指定路径的文件,并设置响应头,告知浏览器这是一个要下载的文件,而...
文件上传是指将文件从客户端上传到服务器端的过程,而文件下载是指将文件从服务器端下载到客户端的过程。在 JSP 中,我们可以使用 Apache 的 Commons FileUpload 库来实现文件上传功能。 准备工作 在开始实现文件...
Struts2框架同样提供了方便的Action支持,如`StreamResult`,可以将文件流发送到客户端,实现文件下载。 【源代码分析】 FileUploadAndDownLoad压缩包可能包含以下几个部分: 1. JSP页面:如upload.jsp、download....
在文件下载方面,SmartServlet或自定义Servlet通常被用来处理这一任务。用户请求下载文件时,Servlet会读取服务器上的文件内容,然后设置响应头(比如Content-Type、Content-Disposition),将文件内容作为响应体...