javaweb學習10:Response下載檔案
阿新 • • 發佈:2022-03-26
-
HttpServletResponse物件:
-
web伺服器接收到客戶端的HTTP請求,會針對這個請求,分別建立一個代表請求的HttpServletRequest物件,一個代表響應的HttpServletResponse物件;
-
如果要獲取我們客戶端請求過來的引數:找HttpServletRequest;
-
-
-
簡單分類:
-
負責向瀏覽器傳送資料的方法:
ServletOutputStream getOutputStream() throws IOException;
PrintWriter getWriter() throws IOException; -
負責向瀏覽器傳送響應頭的方法:
void setCharacterEncoding(String var1);
void setContentLength(int var1);
void setContentLengthLong(long var1);
void setContentType(String var1);
void setDateHeader(String var1, long var2);
void addDateHeader(String var1, long var2);
void setHeader(String var1, String var2);
void addHeader(String var1, String var2);
void setIntHeader(String var1, int var2);
void addIntHeader(String var1, int var2); -
響應的狀態碼:
int SC_OK = 200;
int SC_NOT_FOUND = 404;
int SC_INTERNAL_SERVER_ERROR = 500;
int SC_BAD_GATEWAY = 502;
-
-
常見應用:
-
向瀏覽器輸出訊息;
-
下載檔案;
-
要獲取下載檔案的路徑;
-
下載的檔名是什麼;
-
設定讓瀏覽器支援下下載我們需要的東西;
-
獲取下載檔案的輸入流;
-
建立緩衝區
-
獲取OutputStream物件;
-
將FileOutputStream流寫入到buffer緩衝區;
-
使用OutputStream將緩衝區中的資料輸出到客戶端;
-
-
-
程式碼案例:
/**
* 下載檔案
*/
public class FileServlet extends HttpServlet {
/**
* 1. 要獲取下載檔案的路徑;
* 2. 下載的檔名是什麼;
* 3. 設定讓瀏覽器支援下下載我們需要的東西;
* 4. 獲取下載檔案的輸入流;
* 5. 建立緩衝區
* 6. 獲取OutputStream物件;
* 7. 將FileOutputStream流寫入到buffer緩衝區;
* 8. 使用OutputStream將緩衝區中的資料輸出到客戶端;
*
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/