package com.future.zfs.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @SuppressWarnings("serial") public class FileDownLoadServlet extends HttpServlet{ @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String path=request.getParameter("filename"); path=new String(path.getBytes("ISO-8859-1"),"utf-8"); download(path,request,response); } @SuppressWarnings("deprecation") public HttpServletResponse download(String path,HttpServletRequest request, HttpServletResponse response) { try { // path是指欲下载的文件的路径。 File file = new File(request.getRealPath("/")+"/"+path); // 取得文件名。 String filename = file.getName(); // 取得文件的后缀名。 //String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase(); // 以流的形式下载文件。 InputStream fis = new BufferedInputStream(new FileInputStream(file)); byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); // 清空response response.reset(); // 设置response的Header response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("utf-8"),"ISO-8859-1")); response.addHeader("Content-Length", "" + file.length()); OutputStream toClient = new BufferedOutputStream(response.getOutputStream()); response.setContentType("application/octet-stream"); toClient.write(buffer); toClient.flush(); toClient.close(); } catch (IOException ex) { ex.printStackTrace(); } return response; } }
web.xml
<servlet> <servlet-name>fileDownLoadServlet</servlet-name> <servlet-class>com.future.zfs.util.FileDownLoadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>fileDownLoadServlet</servlet-name> <url-pattern>/fileDownLoadServlet</url-pattern> </servlet-mapping>
<a href="fileDownLoadServlet?filename=通讯录.xls">测试文件下载</a>
相关推荐
### 基于Servlet的文件下载技术解析 #### 一、引言 在Web应用程序开发过程中,文件上传和下载是常见的需求之一。特别是在企业级应用中,用户经常需要下载诸如报告文档、数据备份等文件。Java Servlet作为一种强大...
在构建基于Servlet的购物系统时,我们主要关注的是如何利用Servlet技术来实现一个功能完备、交互性强的在线购物平台。Servlet是一种Java编程语言中的技术,主要用于扩展服务器的功能,特别是在Web应用开发中,它扮演...
本示例基于Servlet和Apache Commons FileUpload库实现了一个简单的文件上传系统。下面将详细介绍这个过程及其涉及到的关键知识点。 首先,`servlet`是Java EE(企业版)的一部分,它是一种用于扩展Web服务器功能的...
"基于Servlet实现文件的上传与下载"是一个常见的实战任务,它涵盖了网络编程、多线程和文件I/O等多个核心概念。这里我们将深入探讨如何利用Servlet来实现这两个功能。 首先,让我们了解Servlet的工作原理。Servlet...
本项目是基于Servlet技术开发的,旨在帮助开发者深入理解Servlet的开发流程,同时也包括了Oracle数据库的相关脚本文件,方便在实际环境中进行数据存储。 一、Servlet基础 Servlet是一个Java类,它响应来自Web客户端...
【基于Servlet的考勤管理系统】是一个适合初学者的JavaWeb项目,它主要利用Servlet技术来实现员工的考勤管理功能。在JavaWeb开发中,Servlet是服务器端的Java应用程序,用于处理HTTP请求并生成响应。这个项目的实践...
【标题】基于Servlet发送、接收SOAP消息的Java源程序 在Web服务开发中,SOAP(简单对象访问协议)是一种常见的消息传输协议,用于在不同系统间交换结构化和类型化的信息。Servlet作为Java Web应用程序的核心组件,...
综上所述,基于Servlet实现文件上传下载功能,结合Apache Commons IO和Commons FileUpload库,可以简化开发流程,同时需要注意安全性及性能优化。在实际项目中,可以根据具体需求进行相应的调整和扩展。
【基于jsp+servlet的博客系统】是一个典型的Web应用程序,它结合了JavaServer Pages(JSP)和Servlet技术,用于构建动态、交互式的博客平台。在这个系统中,JSP主要用于展示用户界面,而Servlet则承担了业务逻辑处理...
在这个小型的基于Servlet的过滤器项目中,我们主要关注如何利用过滤器来实现对网站访问用户的计数功能。这个功能在很多网站统计分析中都非常常见,可以帮助我们了解网站的流量情况。 首先,我们要理解Servlet过滤器...
【基于Servlet开发的学生信息管理系统】 在信息技术领域,Servlet是一种用于扩展服务器功能的Java技术,它为Web应用程序提供了标准的接口。本系统“基于Servlet开发的学生信息管理系统”是使用Servlet技术来构建的...
在IT领域,构建一个基于Servlet的小型用户管理系统是一项常见的任务,尤其对于初学者而言,它提供了理解Web应用程序开发的基础。Servlet是一种Java技术,用于扩展服务器的功能,处理HTTP请求并生成响应。在这个用户...
基于servlet+jsp+mysql实现的javaweb校园车辆管理系统源码+数据库文件.zip 内含演示视频,代码完整下载可用。 基于servlet+jsp+mysql实现的javaweb校园车辆管理系统源码+数据库文件.zip 内含演示视频,代码完整...
【基于Servlet的学生管理系统】是一种基于Java Web技术的后端应用程序,用于高效地管理和查询学生信息。Servlet是Java编程语言中的一个接口,它扩展了Web服务器的功能,允许开发人员创建动态、交互式的Web应用。在本...
【基于Servlet/JSP的学生信息录入查询系统】 这个项目是一个典型的Web应用程序,主要目的是帮助初学者理解和实践Servlet和JSP在构建动态网站时的作用。Servlet是Java服务器端编程的基础,而JSP则是为了简化HTML和...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和...基于Servlet+JSP实现的超市订单管理系统源码+项目说明+数据库sql文件.zip
总结来说,"基于Servlet的网上商城系统源码"是一个综合运用多种Java Web技术的实战项目,它涵盖了前端展示、后端处理、数据库操作等多个环节,对于学习和掌握Web开发技术具有很高的价值。同时,由于其具备二次开发的...
本篇文章将详细讲解如何基于Servlet实现文件上传,并介绍使用Apache Commons FileUpload组件来优化上传过程。 首先,我们来看一下最简单的文件上传方法。在JSP页面中,创建一个表单,设置`enctype`属性为`multipart...
基于Servlet的网上商城在线购物系统的基本功能描述,包括项目源码和数据库SQL文件。 该在线购物系统主要包含以下功能模块: 用户注册与登录: 用户注册:用户可以填写个人信息进行账号注册。 用户登录:注册用户...
**基于Servlet的电子商城购物网站**是一个典型的Java Web应用程序,主要使用Servlet技术来构建后端服务器逻辑,为用户提供在线购物的交互体验。对于初学者来说,这是一个很好的实践项目,可以帮助他们深入理解Java ...