JavaNote 4.1 Servlet實現下載示例

1、示例

package com.test;


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;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

@WebServlet(name = "Servlet_5",urlPatterns = "/download")
public class Servlet_5 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //獲取請求參數
        String filename = request.getParameter("filename");
        //獲取文件類型
        String mimeType = this.getServletContext().getMimeType(filename);
        //設置響應類型
        response.setContentType(mimeType);
        //設置相應頭,如不設置該響應頭,凡是能被瀏覽器識別的如jpg、txt等格式會預覽,設置後會直接下載
        response.setHeader("Content-Disposition","attachment;filename=" + filename);
        //獲取文件的絕對路勁
        String real = this.getServletContext().getRealPath("download/" + filename);
        InputStream in = new FileInputStream(real);
        ServletOutputStream servletOutputStream = response.getOutputStream();

        int len = 0;
        byte[]buff = new byte[1024];
        while((len = in.read(buff))>0){
            servletOutputStream.write(buff,0,len);
        }
        in.close();

    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章