6.测试
download.jsp显示下载选项,LoadFile.java(Servlet)负责下载文件。
download.jsp
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>download page</title> </head> <body> <a href=loadFile>Download:test.zip</a> </body> </html> |
LoadFile.java
package com.zj.sample; import java.io.File; import java.io.FileInputStream; import java.io.IOException; 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 LoadFile extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { OutputStream o = response.getOutputStream(); byte b[] = new byte[1024]; // the file to download. File fileLoad = new File("d:/temp", "test.rar"); // the dialogbox of download file. response.setHeader("Content-disposition", "attachment;filename=" + "test.rar"); // set the MIME type. response.setContentType("application/x-tar"); // get the file length. long fileLength = fileLoad.length(); String length = String.valueOf(fileLength); response.setHeader("Content_Length", length); // download the file. FileInputStream in = new FileInputStream(fileLoad); int n = 0; while ((n = in.read(b)) != -1) { o.write(b, 0, n); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { doGet(request, response); } } |
web.xml(注册servlet)
<servlet> <servlet-name>LoadFileServlet</servlet-name> <servlet-class>com.zj.sample.LoadFile</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoadFileServlet</servlet-name> <url-pattern>/loadFile</url-pattern> </servlet-mapping> |

本文介绍了一个简单的Servlet实现文件下载的方法,通过LoadFile类处理HTTP GET请求来提供文件下载功能,并设置了正确的响应头以便浏览器能够正确处理下载过程。
5467

被折叠的 条评论
为什么被折叠?



