【Java.Web】Servlet —— 实例 之 下载文件
来源:互联网 发布:c语言入门书籍 知乎 编辑:程序博客网 时间:2024/05/18 02:53
下载文件
下载文件是指把服务器端的文件发送到客户端,Servlet能够向客户端发送任意格式的文件数据。
创建一个Servlet并实现doGet方法:
package com.gof.test.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.InputStream;import java.io.OutputStream;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;public class DownloadServlet extends HttpServlet {private static final long serialVersionUID = -2685898734668250794L;protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{String filename = req.getParameter("filename");if (filename == null){return;}InputStream in = getServletContext().getResourceAsStream("/reports/" + filename);OutputStream out = resp.getOutputStream();BufferedInputStream bis = new BufferedInputStream(in);BufferedOutputStream bos= new BufferedOutputStream(out);int length =in.available() ;// Set Responseresp.setContentType("application/force-dwonload");resp.setHeader("Content-Length", String.valueOf(length));resp.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");byte[] buffer = new byte[1024];int bytesRead = -1;while ( (bytesRead = bis.read(buffer)) != -1){bos.write(buffer, 0, bytesRead);}bos.flush();bis.close();bos.close();in.close();out.close();}}
在web.xml中注册该servlet:
<?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"> <display-name>Base Java Webapp</display-name> <description>A Basic Maven Java Webapp Application</description> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- test url: http://localhost:8080/base-webapp/download?filename=testreport.txt --> <servlet> <servlet-name>downloadtest</servlet-name> <servlet-class>com.gof.test.servlet.DownloadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>downloadtest</servlet-name> <url-pattern>/download</url-pattern> </servlet-mapping> </web-app>
在webapp的根目录下添加文件夹reports,并创建一个名为testreport.txt的文件:
在浏览器中访问如下URL:
http://localhost:8080/base-webapp/download?filename=testreport.txt
下载文件。
0 0
- 【Java.Web】Servlet —— 实例 之 下载文件
- java web servlet 文件下载实例代码
- 【Java.Web】Servlet —— 实例 之 上传文件
- 【Java.Web】Servlet —— 实例 之 动态生成图像
- java web Servlet--实现文件下载功能
- java web Servlet--实现文件下载功能
- Java Web +Servlet 文件下载功能
- Servlet 文件下载实例
- java—servlet实现文件下载功能
- Servlet之文件下载
- servlet之文件下载
- java Servlet 文件下载
- Java Web 文件下载之断点续传
- Java Web基础之文件下载
- Java Web 之文件上传与下载
- Java Web 之文件上传与下载
- Java Web 之文件上传与下载
- Java Web 之文件上传与下载
- STL源码剖析——STL函数对象
- 关于android selector详解
- NDK 与 JNI 的关系
- HDU 5025
- 搭建Hadoop环境----CentOs安装和配置(一)
- 【Java.Web】Servlet —— 实例 之 下载文件
- 数据结构_单链表
- Java中Map接口(传智播客毕老师视频讲解)
- 如何看待「封锁 Google 第一案」的开庭审理?
- Big Little迁移之Idle-pull
- 数据结构笔试面试题
- ios 时间与字符串相互转换,包含时区的转换
- 黑马程序员——生产者和消费者问题
- jQuery筛选器children()