JavaWeb文件下载
2017-06-04 14:37
211 查看
文件下载
在页面上点击按钮或连接就进行下载了。但是本质上是存在静态和动态的下载。1、静态:
是对静态资源的下载,静态资源也就是已经存在于web应用程序的目录或者其子目录中的文件等。首先要在项目下编辑好页面和静态资源,如下:
html代码如下:
<html> <head> <title>filedownload.html</title> <meta name="content-type" content="text/html; charset=UTF-8"> </head> <body> <a href="a.txt">点击下载静态资源</a> </body> </html>
在点击“点击下载静态资源”后,页面或链接到
http://localhost:8080/testspringmvc/a.txt实际上就是用浏览器来打开a.txt这一静态资源。
然后就可以手动去“另存为”从页面上保存资源。
2、动态
动态就是利用服务器来先加载目标资源然后是浏览器下载,目标资源可能项目目录上下的静态资源,或者其他目录下的资源,也可以是数据库中的资源。(管他什么资源,都是servlet先加载,只不过加载时不同情况不同方法)。首先是页面:
<body> <a href="a.txt">点击下载静态资源</a><br> <a href="/testspringmvc/download?filename=a.txt">点击下载动态资源</a> </body>
只是为了调用servlet,所以啥方法都行,我用了a标签,用了get传参。
然后就是servlet:
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; public class MyFiledownload extends HttpServlet{ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获得请求文件名 String filename = request.getParameter("filename"); System.out.println(filename); //设置文件MIME类型 response.setContentType(getServletContext().getMimeType(filename)); //设置Content-Disposition response.setHeader("Content-Disposition", "attachment;filename="+filename); //读取目标文件,通过response将目标文件写到客户端 //获取目标文件的绝对路径 String fullFileName = getServletContext().getRealPath("/" + filename); //System.out.println(fullFileName); //读取文件 InputStream in = new FileInputStream(fullFileName); OutputStream out = response.getOutputStream(); //写文件 int b; while((b=in.read())!= -1) { out.write(b); } in.close(); out.close(); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
启动tomcat后,再点击“下载动态资源”,实现对资源的下载,结果:
相关文章推荐
- JavaWeb 文件上传和下载以及图片水印
- 《JavaWeb---简单应用---服务器向客户端提供音乐资源(三)》--- 利用struts实现文件下载,下载时改变文件的名称
- 在javaweb中下载文件两种简单的方式
- javaweb文件下载 部署到服务器文件下载有问题
- JavaWeb下载文件
- JavaWeb项目下中文名文件的下载
- JavaWeb学习记录(二十三)——文件上传与下载
- JavaWeb -- Struts1 多文件上传与下载 DownloadAction, DispatchAction
- JavaWeb -- Struts1 多文件上传与下载 DownloadAction, DispatchAction
- Javaweb学习笔记10—文件上传与下载
- javaweb文件上传下载
- JavaWeb学习之道:文件上传和下载
- JavaWeb-文件的上传与下载
- JavaWeb_14_文件上传下载_fileupload案例
- javaweb jsp页面中实现文件下载
- javaweb中下载二进制文件
- [JAVAWEB实战篇]---java文件上传和下载的网摘整理
- [JAVAWEB实战篇]---jsp文件下载
- javaweb下载中文名文件兼容IE和火狐
- (6) javaweb 文件下载 ie chrome正常 但是ff下载中文名称乱码 另附上传下载代码