首先先写好servlet的代码
首先创建一个servlet
package com.imooc.servlet;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class DownloadServlet
*/
@WebServlet("/DownloadServlet")
public class DownloadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public DownloadServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//想要下载的文件的位置
String path = "C:/Users/Administrator/Desktop/scxz/WebRoot/images/";
String filename = request.getParameter("filename");
File file = new File(path + filename);
if(file.exists()){
//设置相应类型
response.setContentType("application/x-msdownload");
//设置头信息
response.setHeader("Content-Disposition","attachment;filename=\""+filename+"\"");
InputStream inputStream = new FileInputStream(file);
ServletOutputStream outputStream = response.getOutputStream();
byte b[] = new byte[1024];
int n;
while((n=inputStream.read(b))!=-1){
outputStream.write(b,0,n);
}
//关闭流 释放资源
outputStream.close();
inputStream.close();
}else{
request.setAttribute("errorResult", "文件不存在下载失败");
RequestDispatcher dispatcher = request.getRequestDispatcher("jsp/01.jsp");
dispatcher.forward(request, response);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
在jsp页面中调用
在jsp页面中调用servlet
//
下载: <a href="DownloadServlet.do?filename=he.txt">he.txt</a>
最后点击页面的连接即可保存下载到本地