java web response提供文件下载功能的实例讲解

webapp项目的结构如下图:

download.html文件的内容如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
 <h1>资源下载:</h1>
 <p> 单纯地使用a标签时,只有浏览器不能解析的文件才会是下载,否则将被浏览器直接解析。</p>
 <a href="/WEB/resource/a.mp3" rel="external nofollow" >a.mp3</a><br>
 <a href="/WEB/resource/a.exe" rel="external nofollow" >a.exe</a><br>
 <a href="/WEB/resource/a.txt" rel="external nofollow" >a.txt</a><br>
 <a href="/WEB/resource/a.xlsx" rel="external nofollow" >a.xlsx</a><br>
 <a href="/WEB/resource/a.png" rel="external nofollow" >a.png</a><br>
 <p>因此,使用a标签结合servlet的response指示浏览器不解析这些待下载文件</p>
 <a href="/WEB/download?filename=a.mp3" rel="external nofollow" >a.mp3</a><br>
 <a href="/WEB/download?filename=a.exe" rel="external nofollow" >a.exe</a><br>
 <a href="/WEB/download?filename=a.txt" rel="external nofollow" >a.txt</a><br>
 <a href="/WEB/download?filename=a.xlsx" rel="external nofollow" >a.xlsx</a><br>
 <a href="/WEB/download?filename=a.png" rel="external nofollow" >a.png</a><br>
</body>
</html>

负责处理下载的Servlet——download.java文件的内容如下:

package com.download.servlet;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class Download
 */
public class Download extends HttpServlet {
 private static final long serialVersionUID = 1L;
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 //1.获取请求下载的文件名
 String filename = request.getParameter("filename");
 //2.获取文件的文件系统路径
 String filePath = request.getServletContext().getRealPath("resource/"+filename);
 //3.设置响应头,提示浏览器不要解析响应的文件数据,而是以附件(attachment)的形式解析,即下载功能
 response.setContentType(this.getServletContext().getMimeType(filename));
 response.setHeader("Content-Disposition", "attachment;filename="+filename);
 //4.读取文件的 输入流,以及响应的输出流,并将数据输出给客户端
 InputStream in = new FileInputStream(filePath);
 ServletOutputStream out = response.getOutputStream();
 int len = 0;
 byte[] buf = new byte[1024];
 while((len=in.read(buf))!=-1) {
  out.write(buf, 0, len);
 }
 in.close();
 }
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 doGet(request, response);
 }
}

在浏览器地址栏中输入http://localhost:8080/DownloadServlet/download.html。

以上这篇java web response提供文件下载功能的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文章:

  • java web项目实现文件下载实例代码
  • JavaWeb实现文件上传下载功能实例解析
  • JavaWeb文件下载功能实例代码
  • JavaWeb实现文件上传下载功能实例详解
  • javaweb 实现文件下载的方法及实例代码
(0)

相关推荐

  • JavaWeb文件下载功能实例代码

    在工作中遇到的一个下载文件的功能,自己将其抽取出来,代码简单,希望能帮到大家,好了,话不多说,上代码! public void downloadFile(File file, String downName, HttpServletRequest request, HttpServletResponse response) { OutputStream out = null; FileInputStream fin = null; BufferedInputStream bin = null;

  • javaweb 实现文件下载的方法及实例代码

    javaweb 实现文件下载 不要再说用<a>标签下载了,这个会把文件打开而不是下载 例如: <a href="E:\MyDesktop\37fecd65330184de67d419a8d02e7081.jpg">下载</a> 如果我这样写,浏览器就会把图片直接打开,除非是一个浏览器打不开的文件 所以我们还是要用到java本身的文件读写来进行文件的下载 <a href="downloadFile?filename=<s:prop

  • JavaWeb实现文件上传下载功能实例解析

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,stru

  • JavaWeb实现文件上传下载功能实例详解

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 文件上传概述 1.文件上传的作用 例如网络硬盘!就是用来上传下载文件的. 在智联招聘上填写一个完整的简历还需要上传照片呢. 2.文件上传对页面的要求 上传文件的要求比较多,需要记一下: 必须使用表单,而不能是超链接 表单的method必须是POST,而不能是GET 表单的enctype必须是multipart/form-data 在表单中添加file表单字段,即<input ty

  • java web项目实现文件下载实例代码

    复制代码 代码如下: File file = new File(path);// path是根据日志路径和文件名拼接出来的    String filename = file.getName();// 获取日志文件名称    InputStream fis = new BufferedInputStream(new FileInputStream(path));    byte[] buffer = new byte[fis.available()];    fis.read(buffer); 

  • java web response提供文件下载功能的实例讲解

    webapp项目的结构如下图: download.html文件的内容如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>资源下载:</h1> <p> 单纯地使用a标签时,只有浏览器不能解析的文

  • Java Web应用程序实现基础的文件下载功能的实例讲解

    基础思路: 之前的思路一直是弹出一个框问用户想要存放文件的位置,然后我再生成个文件放到那.然而我这个想法并没有成功. 点击链接来下载文件的方式很简便,后台把文件流输出来,通过浏览器实现下载功能,包括询问位置与文件存放,大多数浏览器会配置一个固定位置,不一定每次都问. 前端就非常简单了,一个<a>标签,href="后台方法地址",如果你的需求不能直接用超链接方式,可以在js里写 window.location.href ="后台方法地址". 这样跳转到后台

  • java web实现自动登录功能

    本文实例为大家分享了java web实现自动登录功能的具体代码,供大家参考,具体内容如下 主要思路就是:当用户访问网站的首页时,浏览器端会先检擦浏览器中存在的cookie中是否又登录的用户的用户名,如果有,则直接跳转至用户登录好的界面,如果没有,则重定向至登录界面,在服务器端创建该用户登录的cookie,响应时,将创建的cookie返回至浏览器端保存. 一.用户访问首页时检查cookie是否存在. package ahpudong.com; import java.io.IOException;

  • Java web含验证码及权限登录实例代码

    所用到的开发工具为myeclipse10,MySQL数据库. 首先,在myeclipse中新建一个Java web项目. 项目的结构: 数据库结构: 下面将各个包中的代码粘贴出来. com.ningmeng.dao包 package com.ningmeng.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLExcept

  • java web中图片验证码功能的简单实现方法

    用户在注册网站信息的时候基本上都要数据验证码验证.那么图片验证码功能该如何实现呢? 大概步骤是: 1.在内存中创建缓存图片 2.设置背景色 3.画边框 4.写字母 5.绘制干扰信息 6.图片输出 废话不多说,直接上代码 package com.lsgjzhuwei.servlet.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffer

  • java web实现邮箱发送功能

    本文实例为大家分享了java web实现邮箱发送功能的具体代码,供大家参考,具体内容如下 1.邮箱协议 电子邮件的在网络中传输和网页一样需要遵从特定的协议,常用的电子邮件协议包括 SMTP,POP3,IMAP.其中邮件的创建和发送只需要用到 SMTP协议,所有本文也只会涉及到SMTP协议.SMTP 是 Simple Mail Transfer Protocol 的简称,即简单邮件传输协议. 2.需要使用的jar包 下载地址 3.代码实现 package com.bhkj.ShoppingMall

  • Java Web 实现QQ登录功能一个帐号同一时间只能一个人登录

    对于一个帐号在同一时间只能一个人登录,可以通过下面的方法实现: 1 .在用户登录时,把用户添加到一个ArrayList中 2 .再次登录时查看ArrayList中有没有该用户,如果ArrayList中已经存在该用户,则阻止其登录 3 .当用户退出时,需要从该ArrayList中删除该用户,这又分为三种情况 ① 使用注销按钮正常退出 ② 点击浏览器关闭按钮或者用Alt+F4退出,可以用JavaScript捕捉该页面关闭事件, 执行一段Java方法删除ArrayList中的用户 ③ 非正常退出,比如

  • Java实现二维码功能的实例代码

    最近突然想写一些文章,所以就陆陆续续的编写一些自我感觉有用的并且大家也可能用到的一些技术代码.方便互相学习交流. 今天这篇文章,主要是利用Java实现二维码: 在写代码之前先讲一下整体思路,以方便更好更快捷的实现功能. (1).首先要想实现二维码功能需要导入com.google.zxing的核心jar包,我这里导入的是core-3.2.1.jar; (2).所谓二维码莫过于把需要的内容放入一张图片中,所以这里首先是创建一张带有参数内容的图片,方法如下: private static Buffer

  • java操作solr实现查询功能的实例

    一.封装的查询方法 /** * solr查询方法 * @param client solr客户端 * @param query solr查询对象 * @return list集合 * @throws SolrServerException * @throws IOException */ public static List<Map<String, Object>> getSolrQuery(HttpSolrClient client, SolrQuery query) throw

  • golang实现http server提供文件下载功能

    简介 Go(又称Golang)是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言. 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor.Russ Cox加入项目.Go是基于Inferno操作系统所开发的.Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windo

随机推荐