`
djlijian
  • 浏览: 29320 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在Servlet中实现文件的下载

阅读更多

1、在servlet中实现文件的下载

 

public class OpenFileAction extends Action {

 private final String ENCODING= "utf-8";
 
 private final String CONTENT_TYPE = "text/plain;charset=utf-8";
 
 @Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  
  
  //设置字符编码
  request.setCharacterEncoding(ENCODING);
  //获取文件的名字
  String fileName = request.getParameter("docName");
  if(fileName == null || fileName.trim().equals("")){
   response.setContentType(CONTENT_TYPE);
   PrintWriter out = response.getWriter();
   out.println("The file which you specify is not exists!!");
   out.close();
  }else{//file exists
   
   //下载文件的完整路径名
   String filePath = request.getSession().getServletContext().getRealPath("/workflow/upload");
   String fullFilename = filePath + "\\" + fileName;
   System.err.println("下载的文件 = " + fullFilename);
   
   //根据文件的类型设置response的contentType属性
   String contentType = request.getSession().getServletContext().getMimeType(fullFilename);
   if(contentType == null){
    contentType = "application/octet-stream";
   }
   response.setContentType(contentType);
   //设置response的头信息
   response.setHeader("Content-disposition", "attachment;filename=" + new String(fileName.getBytes("gb2312"),"ISO_8859_1"));
   
   //文件的输入输出流
   InputStream is = null;
   OutputStream os = null;
   try{
    is = new BufferedInputStream(new FileInputStream(fullFilename));
    //定义输出的字节流
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    //response输出流
    os = new BufferedOutputStream(response.getOutputStream());
    
    byte[] buffer = new byte[1024*4];
    
    int length = 0;
    
    while((length = is.read(buffer, 0, buffer.length)) != -1){
     baos.write(buffer, 0, length);
    }
    os.write(baos.toByteArray());
   }catch(Exception ex){
    ex.printStackTrace();
   }finally{
    is.close();
    os.close();
   }
  }
  return null;
 }
}

 

个人学习,欢迎参考

分享到:
评论

相关推荐

    java servlet实现文件下载

    本示例中,我们将探讨如何使用Java Servlet来实现文件的下载功能。 首先,理解HTTP协议是至关重要的,因为它定义了客户端(浏览器)与服务器之间的通信方式。在文件下载场景中,服务器需要响应一个HTTP请求,该请求...

    jsp+servlet实现大型文件下载

    综上所述,实现“jsp+servlet实现大型文件下载”涉及Servlet和JSP的基本使用,文件流操作,HTTP协议的理解,以及安全性和性能优化等多个知识点。通过理解并掌握这些,你可以构建出高效且安全的文件下载服务。

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

    本项目的核心是实现文件下载功能,而不是在浏览器中显示文件内容,尤其针对迅雷这样的第三方下载工具进行优化。下面我们将深入探讨如何使用Java的这些技术来实现这一目标。 首先,`jsp`是Java的一个视图技术,主要...

    servlet 文件上传下载例子

    在这个"Servlet 文件上传下载例子"中,我们将探讨如何使用Servlet实现文件的上传和下载功能,这对于构建一个简单的图片文件服务器至关重要。 1. **文件上传** - **MultipartRequest**: 在Servlet中,处理文件上传...

    servlet实现上传下载 java源码

    在这个场景中,我们关注的是如何使用Servlet来实现文件的上传和下载功能,同时结合Tomcat服务器和XML文件进行数据存储。以下是关于这些知识点的详细说明: 1. **Servlet**: Servlet是Java EE规范的一部分,它是一...

    Servlet实现文件下载

    Servlet实现文件下载public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException{ String str = this.getServletContext().getRealPath("/download/隐形的翅膀 -...

    jsp+servlet实现文件上传下载

    ### jsp+servlet实现文件上传下载 在现代Web开发中,文件上传下载是常见的功能之一。JSP(JavaServer Pages)与Servlet技术结合可以轻松实现这一功能。本篇将详细介绍如何利用jspSmartUpload组件实现文件的上传与...

    servlet实现文件上传下载

    本教程将详细讲解如何使用Servlet实现文件的上传和下载功能,其中涉及到的主要技术点包括Servlet API、Multipart解析以及文件流操作。 首先,我们需要了解Servlet在文件上传中的作用。Servlet在接收到客户端(通常...

    Servlet实现多文件批量下载

    总之,通过Servlet实现多文件批量下载,主要涉及HTTP响应设置、文件流操作以及ZIP压缩技术。这个功能可以帮助用户更高效地下载多个文件,提升用户体验。希望这个示例对你和其他开发者有所帮助,节省寻找解决方案的...

    jsp+servlet实现文件下载

    要使用 Servlet 实现文件下载,首先需要在 web.xml 文件中配置 Servlet。通过配置 Servlet 的名称、类名和 URL 映射,Servlet 就可以被 Tomcat 服务器所调用。例如: ```xml <servlet> <servlet-name>DownloadFile...

    servlet 中文帮助文档

    Servlet的配置通常在Web应用的`web.xml`部署描述符文件中进行。这里可以设置Servlet的映射路径、初始化参数等。例如: ```xml <Servlet> <Servlet-name>MyServlet</Servlet-name> <Servlet-class>...

    CKEditor 上传文件(Servlet实现)

    通过以上步骤,你可以成功地在CKEditor 3.6.0中集成Servlet实现的文件上传功能。这个过程不仅适用于图片,还可以扩展到其他类型的文件,如文档、音频和视频。注意在实际应用中,根据服务器环境和项目需求进行相应的...

    Servlet实现下载

    在本例中,我们关注的是如何利用 Servlet 来实现文件下载功能。文件下载是 Web 应用中常见的需求之一,例如用户需要下载文档、图片或视频等资源。通过 Servlet 实现文件下载可以提供更好的性能、安全性和用户体验。 ...

    servlet文件下载项目

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

    Servlet中文件上传和下载

    本文将深入探讨如何在Servlet中实现文件的上传和下载功能,以及在页面上利用JSP和Javabean来实例化对象。 首先,文件上传是通过HTTP多部分请求(Multipart Request)来实现的。Servlet 3.0及以上版本提供了对这种...

    基于Servlet实现文件的上传与下载

    "基于Servlet实现文件的上传与下载"是一个常见的实战任务,它涵盖了网络编程、多线程和文件I/O等多个核心概念。这里我们将深入探讨如何利用Servlet来实现这两个功能。 首先,让我们了解Servlet的工作原理。Servlet...

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

    在这个项目中,我们重点关注的是Servlet如何实现文件上传、下载和缩略图的生成。 首先,让我们深入理解文件上传的过程。在Web应用中,文件上传通常通过HTML表单实现,使用`<input type="file" />`标签让用户选择要...

    JSP/servlet实现上传下载

    以上就是使用JSP和Servlet实现文件上传下载的基本流程和关键代码。在实际应用中,我们还需要考虑错误处理、安全性(如防止文件覆盖、上传恶意文件等)以及性能优化(如使用缓冲、断点续传等)。在大型项目中,可能还...

    使用Servlet实现文件的下载

    在这个场景中,"使用Servlet实现文件的下载"是一个常见的需求,特别是在构建动态网站时,用户可能需要下载服务器上的文件。以下是关于如何使用Servlet实现文件下载的详细步骤和知识点: 1. **创建Servlet**:首先,...

    Servlet API中文文档

    Servlet API中文文档是Java Web开发中的重要参考资料,它详尽地解释了Servlet技术的各种接口、类和方法,为开发者提供了全面的理解和使用指南。Servlet API是J2EE平台的一部分,主要用于构建动态Web应用程序,它是...

Global site tag (gtag.js) - Google Analytics