<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="/WEB04/DownloadServliet1?filename=海绵宝宝.png">海绵宝宝.png</a>
<a href="/WEB04/DownloadServliet1?filename=a.txt">a.txt</a>
<a href="/WEB04/DownloadServliet1?filename=a.wmv">a.wmv</a>
<a href="/WEB04/DownloadServliet1?filename=a.rar">a.rar</a>
</body>
</html>
package com.colear.demo01;
import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DownloadServliet1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取文件名
String filename=request.getParameter("filename");
// 解决get请求乱码
filename=new String(filename.getBytes("ISO-8859-1"),"UTF-8");
// 告知浏览器文件的MIME类型
response.setContentType(getServletContext().getMimeType(filename));
// 告知浏览器以附件的方式打开
response.setHeader("Chontent-Disposition", "attachment;filename"+filename);
// 明确数据源的绝对路径
String path=getServletContext().getRealPath("/download/"+filename);
// 明确数据源
FileInputStream fis=new FileInputStream(path);
// 明确目的地
ServletOutputStream out=response.getOutputStream();
byte[] bytes=new byte[1024];
int len=0;
while ((len=fis.read(bytes))!=-1) {
out.write(bytes,0,len);
}
// 释放资源
fis.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}