国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

JSP隱含對象response實現文件下載

2024-09-05 00:22:26
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了JSP隱含對象response實現文件下載的兩種方式,對response實現文件下載的方式進行詳細解析,感興趣的小伙伴們可以參考一下
 

一.簡單介紹JSP隱含對象response實現文件下載

(1)在JSP中實現文件下載最簡單的方法是定義超鏈接指向目標資源,用戶單擊超鏈接后直接下載資源,但直接暴露資源的URL也會帶來一些負面的影響,例如容易被其它網站盜鏈,造成本地服務器下載負載過重。
(2)另外一種下載文件的方法是使用文件輸出流實現下載,首先通過response報頭告知客戶端瀏覽器,將接收到的信息另存為一個文件,然后用輸出流對象給客戶端傳輸文件數據,瀏覽器接收數據完畢后將數據另存為文件,這種下載方法的優點是服
務器端資源路徑的保密性好,并可控制下載的流量以及日志登記等。
二.兩種文件的下載方式
(1)二進制文件的下載
用JSP程序下載二進制文件的基本原理是:首先將源文件封裝成字節輸入流對象,通過該對象讀取文件數據,獲取response對象的字節輸出流對象,通過輸出流對象將二進制的字節數據傳送給客戶端。
1.把源文件封裝成字節輸入流對象
2.讀取二進制字節數據并傳輸給客戶端
代碼如下:

<%@ page contentType="application/x-download" import="java.io.*" %> <%  int status=0;  byte b[]=new byte[1024];  FileInputStream in=null;  ServletOutputStream out2=null;  try  {  response.setHeader("content-disposition","attachment; filename=d.zip");  in=new FileInputStream("c://tomcat//webapps//ROOT//d.zip");  out2=response.getOutputStream();  while(status != -1 )   {   status=in.read(b);   out2.write(b);   }  out2.flush();  }  catch(Exception e)  {  System.out.println(e);  response.sendRedirect("downError.jsp");  }  finally  {  if(in!=null)   in.close();  if(out2 !=null)   out2.close();  } %> 

(2)文本文件下載
文本文件下載時用的是字符流,而不是字節流。首先取得源文件的字符輸入流對象,用java.io.FileReader類封裝,再把FileReader對象封裝為java.io.BufferedReader,以方便從文本文件中一次讀取一行。字符輸出流直接用JSP的隱含對象out,out能夠輸出字符數據。

代碼如下:

<%@ page contentType="application/x-download" import="java.io.*" %><%  int status=0;  String temp=null;  FileReader in=null;  BufferedReader in2=null;  try  {  response.setHeader("content-disposition","attachment; filename=ee.txt");  response.setCharacterEncoding("gb2312");  in=new FileReader("c://tomcat//webapps//ROOT//ee.txt");  in2=new BufferedReader(in);  while((temp=in2.readLine()) != null )   {   out.println(temp);   }  out.close();  }  catch(Exception e)  {  System.out.println(e);  response.sendRedirect("downError.jsp");  }  finally  {  if(in2!=null)   in2.close();  } %> 

希望本文所述對大家學習JSP隱含對象response實現文件下載有所幫助。



注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 余干县| 枞阳县| 启东市| 洮南市| 西峡县| 常德市| 枣庄市| 化德县| 无极县| 东乡| 永嘉县| 绥德县| 莱西市| 巴青县| 昭苏县| 门源| 民勤县| 唐海县| 简阳市| 巴青县| 寿光市| 望城县| 东莞市| 竹溪县| 准格尔旗| 米泉市| 嘉定区| 新晃| 涿鹿县| 新巴尔虎右旗| 德令哈市| 顺平县| 潞城市| 南江县| 青岛市| 肃南| 武清区| 永新县| 古交市| 洪洞县| 洪洞县|