【ZT】Jsp/Servlet:实现文件上传与下载【三】

来源:互联网 发布:mac如何强制关机 编辑:程序博客网 时间:2024/06/05 02:51
6.测试
    download.jsp显示下载选项,LoadFile.javaServlet)负责下载文件。
download.jsp
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>download page</title>
</head>
<body>
    <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>