自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析JSP文件下載的幾種不同方式

開發(fā) 后端
本文將簡單介紹JSP文件下載的幾種不同方式,包括最簡單的把文件地址直接放到HTML頁面的一個(gè)鏈接中、把文件轉(zhuǎn)換成輸出流等等內(nèi)容。

1.最直接最簡單的JSP文件下載,方式是把文件地址直接放到html頁面的一個(gè)鏈接中。這樣做的缺點(diǎn)是把文件在服務(wù)器上的路徑暴露了,并且還無法對文件下載進(jìn)行其它的控制(如權(quán)限)。這個(gè)就不寫示例了。

2.在服務(wù)器端把文件轉(zhuǎn)換成輸出流,寫入到response,以response把文件帶到瀏覽器,由瀏覽器來提示用戶是否愿意保存文件到本地。(JSP文件下載示例如下)

  1. <%  
  2.  response.setContentType(fileminitype);  
  3.  response.setHeader("Location",filename);  
  4.  response.setHeader("Cache-Control", "max-age=" + cacheTime);  
  5.  response.setHeader("Content-Disposition", "attachment; filename=" + filename); //filename應(yīng)該是編碼后的(utf-8)  
  6.  response.setContentLength(filelength);  
  7.  OutputStream outputStream = response.getOutputStream();  
  8.  InputStream inputStream = new FileInputStream(filepath);  
  9.  byte[] buffer = new byte[1024];  
  10.  int i = -1;  
  11.  while ((i = inputStream.read(buffer)) != -1) {  
  12.   outputStream.write(buffer, 0, i);  
  13.   }  
  14.  outputStream.flush();  
  15.  outputStream.close();  
  16.  inputStream.close();  
  17.  outputStream = null;  
  18.  
  19. %> 

3.既然是JSP文件下載的話,還有一種JSP文件下載方式就是用Applet來實(shí)現(xiàn)文件的下載。不過客戶首先得信任你的這個(gè)Applet小程序,由這個(gè)程序來接受由servlet發(fā)送來的數(shù)據(jù)流,并寫入到本地。

servlet端示例  

  1. public void service(HttpServletRequest req, HttpServletResponse res)  
  2.            throws ServletException, IOException {  
  3.        res.setContentType(" text/plain ");  
  4.        OutputStream outputStream = null;  
  5.        try {  
  6.            outputStream = res.getOutputStream();  
  7.            popFile(srcFile, outputStream)) ;//把文件路徑為srcFile的文件寫入到outputStream中。  
  8.        } catch (IOException e) {  
  9.            e.printStackTrace();  
  10.        }  
  11.    }  

JApplet端示例

URLConnection con;

【編輯推薦】

  1. 淺析JSP HTTP服務(wù)器支持CGI
  2. 使用JSP頁面生成PDF報(bào)表
  3. JSP自定義標(biāo)簽定義步驟
  4. 詳解測試JSP容器
  5. 介紹JSP HTTP服務(wù)器實(shí)現(xiàn)的以下特性
責(zé)任編輯:彭凡 來源: xgdown.com
相關(guān)推薦

2010-07-16 13:41:08

SQL Serverl

2010-02-26 13:34:50

WCF編碼機(jī)制

2020-04-20 14:30:54

UbuntuLinux內(nèi)核

2020-04-24 16:09:57

UbuntuLinux內(nèi)核

2018-10-22 10:30:58

命令Fedora操作系統(tǒng)

2010-02-04 15:41:10

C++內(nèi)存管理

2019-12-09 10:30:42

Windows 10帳戶Windows

2010-03-01 15:21:57

WCF死鎖

2010-02-23 09:58:21

WCF客戶端驗(yàn)證

2009-07-06 17:11:38

Servlet文件上傳

2010-02-05 10:30:02

C++操作符重載

2015-07-08 16:07:19

iOSObjective-C

2010-02-06 14:12:54

C++繼承方式

2010-02-04 10:33:40

C++異常傳遞

2009-07-14 10:47:47

MyEclipse J

2010-09-25 15:25:52

2010-09-02 10:15:46

SQL刪除

2009-06-29 17:39:31

JSP設(shè)計(jì)模式

2009-07-06 13:52:56

編寫JSP Tag

2009-07-03 17:48:34

JSP頁面翻譯
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)