访问ListFileServlet,就可以在listfile.jsp页面中显示提供给用户下载的文件资源,如下图所示:

3.2、实现文件下载
编写一个用于处理文件下载的Servlet,DownLoadServlet的代码如下:
1 package me。gacl。web。controller; 2 3 import java。io。File; 4 import java。io。FileInputStream; 5 import java。io。IOException; 6 import java。io。OutputStream; 7 import java。net。URLEncoder; 8 import javax。servlet。ServletException; 9 import javax。servlet。http。HttpServlet;10 import javax。servlet。http。HttpServletRequest;11 import javax。servlet。http。HttpServletResponse;12 13 public class DownLoadServlet extends HttpServlet {14 1516public void doGet(HttpServletRequest request, HttpServletResponse response)17throws ServletException, IOException {18//得到要下载的文件名19String fileName = request。getParameter("filename"); //23239283-92489-阿凡达。avi20fileName = new String(fileName。getBytes("iso8859-1"),"UTF-8");21//上传的文件都是保存在/WEB-INF/upload目录下的子目录当中22String fileSaveRootPath=this。getServletContext()。getRealPath("/WEB-INF/upload");23//通过文件名找出文件的所在目录24String path = findFileSavePathByFileName(fileName,fileSaveRootPath);25//得到要下载的文件26File file = new File(path "\\" fileName);27//如果文件不存在28if(!file。exists()){29request。setAttribute("message", "您要下载的资源已被删除!!");30request。
getRequestDispatcher("/message。jsp")。forward(request, response);31return;32}33//处理文件名34String realname = fileName。substring(fileName。indexOf("_")1);35//设置响应头,控制浏览器下载该文件36response。setHeader("content-disposition", "attachment;filename=" URLEncoder。encode(realname, "UTF-8"));37//读取要下载的文件,保存到文件输入流38FileInputStream in = new FileInputStream(path "\\" fileName);39//创建输出流40OutputStream out = response。getOutputStream();41//创建缓冲区42byte buffer[] = new byte[1024];43int len = 0;44//循环将输入流中的内容读取到缓冲区当中45while((len=in。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-52904-8.html
也不是实心弹