`
蒋启云
  • 浏览: 1585 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

servlet文件下载

 
阅读更多
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简介与应用场景 Servlet是一种运行在服务器端的Java应用程序,主要用于处理客户端发送的HTTP请求,并响应相应的HTTP结果。Servlet是Java Web开发的基础,广泛应用于...

    servlet文件下载项目

    在这个"Servlet文件下载项目"中,我们利用Servlet技术来实现文件的下载功能。这是一个非常实用的功能,尤其对于那些需要向用户提供文件下载服务的网站或应用。 首先,我们需要了解Servlet的基本工作原理。Servlet是...

    jsp+servlet文件下载及批量下载

    java实现jsp+servlet文件下载及批量下载,mvc分层技术

    简单实现Servlet文件下载功能

    Servlet 文件下载功能实现详解 Servlet 文件下载功能是 Web 开发中常见的一种需求,通过 Servlet 实现文件下载可以提供给用户下载指定的文件,而不是只能浏览 HTML 内容。在这篇文章中,我们将详细介绍如何简单...

    用servlet写的文件上传及下载功能带进度条

    自己用servlet写的文件上传及下载功能带进度条 主要用到两个jar:commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar 内容介绍: com.fm.FileManagerService:一个servlet用来实现主要的文件上传下载逻辑的 ...

    jsp实现Servlet文件下载的方法

    本文讲解了如何使用JSP配合Servlet实现文件下载的功能,以下知识点将从整体概述、具体实现方法、关键代码解析、以及实现过程中的注意事项等几个方面展开介绍。 ### 整体概述 1. **JSP与Servlet的关系**: - JSP...

    servlet 文件上传下载例子

    - **断点续传**: 虽然这个例子可能没有涵盖,但高级功能如断点续传可以提高用户体验,特别是对于大文件下载。 3. **Servlet生命周期** - **初始化**: Servlet在首次请求时被实例化,可以通过`init()`方法进行初始...

    servlet下载文件

    ### Servlet下载文件知识点详解 #### 一、Servlet简介与应用场景 Servlet是一种运行在服务器端的小程序,主要用于处理HTTP请求并生成动态网页。...这些知识点对于理解和实践基于Servlet的文件下载功能至关重要。

    java servlet实现文件下载

    Java Servlet是一种Java编程语言...通过这个简单的Java Servlet实现,我们可以为用户提供一个安全、可控的文件下载服务。理解这些基本步骤和相关的HTTP概念,将有助于你更好地设计和实现Web应用程序中的文件下载功能。

    servlet+Android原生代码实现文件上传下载

    Android 代码中实现使用 httpurlconnent 原生网络访问方式实现 get请求 psot 带参数请求 以及文件下载 文件断点下载 以及进度提示 文件下载功能 java端采用servlet实现相应接口 返回json数据

    java下载类(servlet)

    实现Servlet文件下载的步骤如下: 1. **创建Servlet类**:首先,你需要继承HttpServlet类并重写doGet或doPost方法,因为大多数下载请求都是GET请求,所以通常重写doGet方法。 2. **设置响应头**:在处理方法中,...

    jsp,servlet上传下载文件

    3. 文件下载:在服务器端,提供文件下载的接口,客户端可以通过该接口下载文件。 jsp 页面的实现 在 jsp 页面中,使用 HTML 表单将用户的输入信息提交到服务器端。jsp 页面的代码如下所示: ```jsp ${pageContext....

    Servlet文件上传、下载及缩略图的生成

    文件下载则相对简单。Servlet可以通过创建一个`HttpServletResponse`,设置响应头的`Content-Type`和`Content-Disposition`字段来指示浏览器以附件形式下载文件。然后,使用`ServletOutputStream`写入文件内容到响应...

    java jsp+servlet实现文件下载(而不是在网页中显示出文件内容) 迅雷下载功能.zip

    综上所述,这个项目利用了`jsp`和`servlet`的技术,通过设置正确的HTTP响应头,实现了文件下载功能,同时也考虑了迅雷等下载工具的需求。在实际开发中,还需要考虑其他因素,如错误处理、日志记录和性能优化,以提供...

    Servlet中文件上传和下载

    以下是一个简单的文件下载Servlet示例: ```java @WebServlet("/FileDownloadServlet") public class FileDownloadServlet extends HttpServlet { protected void doGet(HttpServletRequest request, ...

    文件上传与下载servlet

    ### 文件下载 文件下载主要涉及设置HTTP响应头和提供文件内容。以下是实现步骤: 1. **请求处理**:Servlet接收用户的下载请求,通常是通过点击链接触发。 2. **设置响应头**:在`HttpServletResponse`中设置`...

    servlet上传下载文件

    下面是一个文件下载Servlet的示例: ```java @WebServlet("/FileDownloadServlet") public class FileDownloadServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, ...

    基于servlet的文件下载代码

    ### 基于Servlet的文件下载技术解析 #### 一、引言 在Web应用程序开发过程中,文件上传和下载是常见的需求之一。特别是在企业级应用中,用户经常需要下载诸如报告文档、数据备份等文件。Java Servlet作为一种强大...

    servlet实现文件上传下载

    总结来说,实现Servlet文件上传下载需要理解Servlet生命周期、HTTP请求处理、多部分数据解析以及文件I/O操作。Apache Commons FileUpload库简化了这一过程,但理解其背后的原理对于解决可能出现的问题和优化性能至关...

    JSP+Servlet文件上传下载实例

    文件下载则相对简单。在Servlet中,我们可以通过以下方式设置响应头并读取文件内容: ```java response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "attachment; ...

Global site tag (gtag.js) - Google Analytics