013_下载静态资源

一. 使用Tomcat默认的servlet去下载静态资源 

1. 直接以超链接的方式下载, 不写任何代码, 就能够下载东西下来。

<a href="Download/shake.wav">shake.wav</a><br/>

<a href="Download/logo.png">logo.png</a><br/>

<a href="Download/apache-tomcat7.zip">apache-tomcat7.zip</a>

2. Tomcat里面有一个默认的。这个DefaultServlet 专门用于处理放在Tomcat服务器上的静态资源。

3. 新建一个Download的Web工程

4. 在WebContent下新建一个Download的目录, 放入几个文件

5. 新建一个index.html

6. 编写index.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>下载</title>
	</head>
	<body>
		<a href="Download/shake.wav">shake.wav</a><br/>
		<a href="Download/logo.png">logo.png</a><br/>
		<a href="Download/apache-tomcat7.zip">apache-tomcat7.zip</a><br/>
	</body>
</html>

7. 部署运行

8. 点击shake.wav, chrome浏览器在网页中打开了它

9. 点击logo.png, chrome浏览器在网页中打开了它

10. 点击apache-tomcat7.zip, 进行下载

二. 使用自己的Servlet去下载文件, 而不是展示

1. 编写index.html

2. 新建一个Download.java类

3. 编写Download.java类

package com.lywgames.myservlet;

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 Download extends HttpServlet {
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// 获取文件名字
		String filename = req.getParameter("filename");
		// 让浏览器收到这份资源的时候, 以下载的方式提醒用户, 而不是直接展示。 
		resp.setHeader("Content-Disposition", "attachment; filename="+filename);
		// 获取这个文件在Tomcat里面的绝对路径地址
		String path = getServletContext().getRealPath("Download/" + filename);
		
		InputStream is = new FileInputStream(path);
		OutputStream os = resp.getOutputStream();
		int len = 0 ;
		byte[] buffer = new byte[1024];
		while((len = is.read(buffer)) != -1){
			os.write(buffer, 0, len);
		}
		os.close();
		is.close();
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
}

4. 编写web.xml

5. 部署运行项目, png和wav文件也可以下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值