美文网首页
通过servlet实现网页的文件下载demo

通过servlet实现网页的文件下载demo

作者: wuwudeqi | 来源:发表于2018-01-26 10:29 被阅读0次

最近在学习java的servlet,网页下载图片、视频、文档都是经常使用的操作,现在通过一个例子来实现下载视频。

软件:eclipse

语言:java web

知识点:Servlet,响应头,ServletContext

步骤

1、建立dynamic web工程,新建立的时候需要选择2.5的版本(因为2.5的版本可以在新建的时候就自带web.xml,3.0就没有),我命名工程为“DownloadMovie”,并且在java Resource里面新建立了一个servlet,命名为“DownServlet”,并且在WebContent的下面新建index.html文件,并且新建download文件夹,里面放置需要的下载文件”travel.mp4“,文件的结构如下图

2、在平常的下载中,经常是点击关键字,然后就进行下载了,所以要用<a>标签,在html中,我就在<body>标签加了一句话

index.htm中写的代码

href中的网址就是点击访问的网址,“DownloadMovie”是工程的名字,/downServelt是对应DownServlet对应url,可以在web.xml设置,后面的“?filename=travel.mp4”就是传递了travel.mp4这个文件名到创建的DownServlet中的作用。

3、在DownServlet的代码如下:

package com.fffff.download;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

网页下载demo

***/

public class DownServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//拿到从html传递来的参数

String filename = request.getParameter("filename");

//从ServletContext的getMimeType方法得到里面命名为”travel.mp4“的文件类型

response.setContentType(this.getServletContext().getMimeType(filename));

//这句话的意思是,在点击关键字的时候下载而不是预览

response.setHeader("Content-Disposition", "attachment;filename="+filename);

//设置input输入,得需要下载文件的输入

String realPath = this.getServletContext().getRealPath("/download/"+filename);

InputStream in = new FileInputStream(realPath);

//获得输出流

ServletOutputStream  out = response.getOutputStream();

//让文件传出

int len=0;

  byte[] buffer =new byte[1024];

  while((len=in.read(buffer))>0) {

  out.write(buffer,0,len);

  }

  in.close();

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

}

4、整个实验可能会出现404,那么就是web.xml没有配置好,还可能会出现直接预览了MP4文件而不是下载提示那么就是这句”response.setHeader("Content-Disposition", "attachment;filename="+filename);“有错误,在servlet学习中,觉得关键在于一些url地址要配置正确

如下为结果截图

网页界面
点击以后出现的下载

若有问题可以留言,互相勉励,共同学习

相关文章

  • 通过servlet实现网页的文件下载demo

    最近在学习java的servlet,网页下载图片、视频、文档都是经常使用的操作,现在通过一个例子来实现下载视频。 ...

  • Servlet 实现文件下载

    Servlet 实现文件下载 在生活或者工作中,总是避免不了下载文件,下载的东西有各种类型,譬如图片,视频,文本,...

  • SpringMVC之文件上传和下载

    SpringMVC实现文件的上传和下载相对于JavaWeb阶段我们使用过servlet实现文件上传和下载操作;而S...

  • servlet基础简记

    实现一个Servlet程序: 1.创建Servlet文件2.直接实现Servlet接口(不方便),可以通过继承Se...

  • 文件上传与下载

    Servlet实现文件上传与下载 所需包:commons-fileupload-1.2.1.jarcommons-...

  • No.3 - CSS transition 和 CSS tran

    任务动画 demo下载.html 文件 小结 静态图实现的方法:①基本的组件是div,通过position的abs...

  • 文件下载用servlet实现

    一般来说文件下载需要的步骤为: (1)获得客户端请求的文件的名称 (2)获得服务器端的真实的物理路径 (3)创建目...

  • Servlet使用

    Servlet概述 Servlet负责处理网页传送过来的信息,实现的方法有doGet和doPost,一般通过继承H...

  • servlet实现文件上传和下载

    前言 在学文件的上传和下载的时候,老师的东西用着很不舒服,于是就自己找的视频自己学,然后跟着视频敲的,时间长了,容...

  • 在web工程中对类的定义

    实现Servlet接口 package HelloDemo; public class Demo1 impleme...

网友评论

      本文标题:通过servlet实现网页的文件下载demo

      本文链接:https://www.haomeiwen.com/subject/ndsiaxtx.html