import
java.io.BufferedInputStream;
import
java.io.BufferedOutputStream;
import
java.io.File;
import
java.io.FileInputStream;
import
java.io.IOException;
import
javax.servlet.ServletException;
import
javax.servlet.ServletOutputStream;
import
javax.servlet.http.HttpServlet;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
public
class
FileDownload
extends
HttpServlet {
protected
void
service(HttpServletRequest req, HttpServletResponse res)
throws
ServletException, IOException {
//
服务器相对路径
String path
=
req.getParameter(
"
path
"
);
//
服务器绝对路径
path
=
getServletContext().getRealPath(
"
/
"
)
+
path;
//
检查文件是否存在
File obj
=
new
File(path);
if
(
!
obj.exists()) {
res.setContentType(
"
text/html;charset=GBK
"
);
res.getWriter().print(
"
指定文件不存在!
"
);
return
;
}
//
读取文件名:用于设置客户端保存时指定默认文件名
int
index
=
path.lastIndexOf(
"
\\
"
);
//
前提:传入的path字符串以“\”表示目录分隔符
String fileName
=
path.substring(index
+
1
);
//
写流文件到前端浏览器
ServletOutputStream out
=
res.getOutputStream();
res.setHeader(
"
Content-disposition
"
,
"
attachment;filename=
"
+
fileName);
BufferedInputStream bis
=
null
;
BufferedOutputStream bos
=
null
;
try
{
bis
=
new
BufferedInputStream(
new
FileInputStream(path));
bos
=
new
BufferedOutputStream(out);
byte
[] buff
=
new
byte
[
2048
];
int
bytesRead;
while
(
-
1
!=
(bytesRead
=
bis.read(buff,
0
, buff.length))) {
bos.write(buff,
0
, bytesRead);
}
}
catch
(IOException e) {
throw
e;
}
finally
{
if
(bis
!=
null
)
bis.close();
if
(bos
!=
null
)
bos.close();
}
}
}
分享到:
相关推荐
### Servlet文件下载技术详解 #### 一、Servlet简介与应用场景 Servlet是一种运行在服务器端的Java应用程序,主要用于处理客户端发送的HTTP请求,并响应相应的HTTP结果。Servlet是Java Web开发的基础,广泛应用于...
在这个"Servlet文件下载项目"中,我们利用Servlet技术来实现文件的下载功能。这是一个非常实用的功能,尤其对于那些需要向用户提供文件下载服务的网站或应用。 首先,我们需要了解Servlet的基本工作原理。Servlet是...
java实现jsp+servlet文件下载及批量下载,mvc分层技术
Servlet 文件下载功能实现详解 Servlet 文件下载功能是 Web 开发中常见的一种需求,通过 Servlet 实现文件下载可以提供给用户下载指定的文件,而不是只能浏览 HTML 内容。在这篇文章中,我们将详细介绍如何简单...
自己用servlet写的文件上传及下载功能带进度条 主要用到两个jar:commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar 内容介绍: com.fm.FileManagerService:一个servlet用来实现主要的文件上传下载逻辑的 ...
本文讲解了如何使用JSP配合Servlet实现文件下载的功能,以下知识点将从整体概述、具体实现方法、关键代码解析、以及实现过程中的注意事项等几个方面展开介绍。 ### 整体概述 1. **JSP与Servlet的关系**: - JSP...
- **断点续传**: 虽然这个例子可能没有涵盖,但高级功能如断点续传可以提高用户体验,特别是对于大文件下载。 3. **Servlet生命周期** - **初始化**: Servlet在首次请求时被实例化,可以通过`init()`方法进行初始...
### Servlet下载文件知识点详解 #### 一、Servlet简介与应用场景 Servlet是一种运行在服务器端的小程序,主要用于处理HTTP请求并生成动态网页。...这些知识点对于理解和实践基于Servlet的文件下载功能至关重要。
Java Servlet是一种Java编程语言...通过这个简单的Java Servlet实现,我们可以为用户提供一个安全、可控的文件下载服务。理解这些基本步骤和相关的HTTP概念,将有助于你更好地设计和实现Web应用程序中的文件下载功能。
Android 代码中实现使用 httpurlconnent 原生网络访问方式实现 get请求 psot 带参数请求 以及文件下载 文件断点下载 以及进度提示 文件下载功能 java端采用servlet实现相应接口 返回json数据
实现Servlet文件下载的步骤如下: 1. **创建Servlet类**:首先,你需要继承HttpServlet类并重写doGet或doPost方法,因为大多数下载请求都是GET请求,所以通常重写doGet方法。 2. **设置响应头**:在处理方法中,...
3. 文件下载:在服务器端,提供文件下载的接口,客户端可以通过该接口下载文件。 jsp 页面的实现 在 jsp 页面中,使用 HTML 表单将用户的输入信息提交到服务器端。jsp 页面的代码如下所示: ```jsp ${pageContext....
文件下载则相对简单。Servlet可以通过创建一个`HttpServletResponse`,设置响应头的`Content-Type`和`Content-Disposition`字段来指示浏览器以附件形式下载文件。然后,使用`ServletOutputStream`写入文件内容到响应...
综上所述,这个项目利用了`jsp`和`servlet`的技术,通过设置正确的HTTP响应头,实现了文件下载功能,同时也考虑了迅雷等下载工具的需求。在实际开发中,还需要考虑其他因素,如错误处理、日志记录和性能优化,以提供...
以下是一个简单的文件下载Servlet示例: ```java @WebServlet("/FileDownloadServlet") public class FileDownloadServlet extends HttpServlet { protected void doGet(HttpServletRequest request, ...
### 文件下载 文件下载主要涉及设置HTTP响应头和提供文件内容。以下是实现步骤: 1. **请求处理**:Servlet接收用户的下载请求,通常是通过点击链接触发。 2. **设置响应头**:在`HttpServletResponse`中设置`...
下面是一个文件下载Servlet的示例: ```java @WebServlet("/FileDownloadServlet") public class FileDownloadServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, ...
### 基于Servlet的文件下载技术解析 #### 一、引言 在Web应用程序开发过程中,文件上传和下载是常见的需求之一。特别是在企业级应用中,用户经常需要下载诸如报告文档、数据备份等文件。Java Servlet作为一种强大...
总结来说,实现Servlet文件上传下载需要理解Servlet生命周期、HTTP请求处理、多部分数据解析以及文件I/O操作。Apache Commons FileUpload库简化了这一过程,但理解其背后的原理对于解决可能出现的问题和优化性能至关...
文件下载则相对简单。在Servlet中,我们可以通过以下方式设置响应头并读取文件内容: ```java response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; ...